Mac OS X 10.5 Fast System Deployment Practice
Mac OS X 10.5快速系统部署实践
注:
前一篇在这里:[ Mac OS X 10.5快速系统部署实践-制作核心系统镜像(2) v1](#)
### 本地管理员
在企业中,为了方便管理用户,每个用户都有为了完成工作而设定的各自权限。为了管理每台电脑,管理员必需要有足够的权利管理该电脑系统,所以一个具有足够高权限的本地管理员帐户就是必不可少的了。
大家都知道,Mac OS X是基于BSD的类Unix系统的,它的核心是Darwin, 是Apple早在1989年发布的,它主要从FreeBSD, NEXTSTEP等系统发展过来的,它符合SUSv3和POSIX UNIX规范,从10.6版本开始全面升级到64位编码。在Mac里面,系统管理员一般情况下不需要使用root用户来管理系统,而一个具有管理员权限的帐户就可以完成绝大多数的系统管理工作。所以,我们第一步要做的就是建立一个管理员帐户。
#### 其实,通过安装盘安装MAc OS X系统的时候,系统会提示用户生成第一个用户帐户,其实这个帐户就是一个管理员帐户,使用这个帐户作为企业本地管理员帐户就可以,如果这样请跳过本小节仔细阅读下一小节的内容。
使用图形界面生成一个管理员帐户也是最简单的,下面同样只给出一个屏幕截图。
[![](image/56a5a7b238625.jpg)](http://docs.google.com/File?id=dfm3jbw9_222dx95qrc3_b)
#### 使用shell命令
完全可以用shell命令来完成管理员的帐户建立:
<table id="trh-" style="width: 100%;" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000"><tbody><tr><td width="100%"><p>sudo -s</p><p>echo "Creating System Admin Account..."</p><p>dscl . -create /Users/sysadmin</p><p>dscl . -create /Users/sysadmin UserShell /bin/bash</p><p>dscl . -create /Users/sysadmin RealName "System Admin"</p><p>dscl . -create /Users/sysadmin UniqueID 501</p><p>dscl . -create /Users/sysadmin PrimaryGroupID 80</p><p>dscl . -create /Users/sysadmin NFSHomeDirectory /Users/sysadmin</p><p>dscl . -passwd /Users/sysadmin "sadigowre4t0au4"</p><p>dscl . -append /Groups/admin GroupMembership sysadmin</p><p> </p><p>cp -R /System/Library/User/ Template/English.lproj /Users/zhangsan</p><p>chown -R sysadmin /Users/sysadmin</p></td></tr></tbody></table>
上面的bash脚本创建了真实姓名是"System Admin",Unix用户名是sysadmin的,Unix唯一ID是501的,具有管理员权限(加入到admin管理员组)的本地帐户。大家可以对比看出普通用户和管理员帐户的区别。
#### root用户
root在UNIX世界里是特殊的用户,它是计算机的God, 它可以做任何事情,而管理员身份的用户可以通过各种方式实现root用户的功能,一般情况下不会用到root, 所以Mac默认是禁止root用户的。如果管理需要可以打开root帐户.
在图形方式里,不同版本的Mac OS X,使用的工具有点不同,详细的操作可以参见Apple的官方文档: [在 Mac OS X 中启用和使用 root 用户](http://support.apple.com/kb/HT1528?viewlocale=zh_CN "在 Mac OS X 中启用和使用 root 用户")
使用命令行:
| sudo passwd root |
|-----|
之后输入root用户密码,并确认一次。
当然,我们还可以使用下面的命令行来打开和禁止root用户(对于10.5的Leopard系统测试通过,之前的系统没有测试)
<table id="n-06" style="width: 100%;" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000"><tbody><tr><td width="100%"><span style="font-family: courier new,courier;"><span style="color: #800000;"><span class="comment"># enable root user account</span><br/><span class="punct">/</span><span class="regex">usr</span><span class="punct">/</span><span class="ident">sbin</span><span class="punct">/</span><span class="ident">dsenableroot -u adminusername -p adminuserpassword -r rootpassword</span></span></span><br/></td></tr></tbody></table>
其中 -u后面的adminusername是一个具有管理员身份的账户,后面的-padminuserpassword是该账户的密码,后面就是-rrootpassword就是被重新设置的root用户的密码。注意,在设置密码的时候有些特殊字符需要转义。
### 管理员帐户安全和隐藏
为了保护管理员帐户的安全,该帐户应使用适当强度的密码,这一点自不必多说;只有工作内容需要知道的人才可以知道,并教育员工确立对帐户和密码的保护和正确使用意识,以及密码的保存形式等的管理都是保证这个密码长期有效的保障。
为了系统更安全,管理员帐户名称最好对普通用户隐藏,首先普通用户没有必要知道有这么一个帐户,同时也给系统破解带来障碍。
这要从几个层面来考虑,首先是管理员的home目录需要隐藏,其次, 在系统偏好->里面不显示管理员帐户名, 再有就是在登陆列表中也不能显示。
首先,需要找到一个小于500的空余UID号,也就是一个没有其他本地用户(系统或者用户)使用的UID号。Mac OSX默认的是:对于所有电脑用户生成的用户帐号,都是大于500的,而小于500的是留给系统本身使用的,操作系统为了能够正常运行,需要一些帐号,比如web服务的帐号_www, root等等。而这些小于500的UID帐号是默认不在图形界面系统中自动显示的。
使用图形界面可以查找不同用户的UID号码, 如下图的User ID:
[![](image/56a5a7c7f2e7b.jpg)](http://docs.google.com/File?id=dfm3jbw9_233pjvsn6c8_b)
使用下面的命令可以列出所有当前系统用户占用的UID:
<table id="xnqk" style="width: 100%;" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000"><tbody><tr><td width="100%"><span style="color: #660000; font-family: Courier New;">dscl . list /Users UniqueID</span><br/></td></tr></tbody></table>
其次,变更管理员帐户Home目录的路径,这一点可以使用图形方式解决, 上图中的Home Directory就是用户的Home目录设置,你可以改变它,这样以后该用户登陆后,就会使用这个设置.
或者是命令行方式, 如下面的命令:
| dscl . -create /Users/sysadmin NFSHomeDirectory /Users/sysadmin |
|-----|
或者可以使用隐藏目录的命令如SetFile,来设置目录的扩展属性,使其对于图形界面Finder等隐藏。这种方式也是可以接受的,但是相比把home目录移动的方法,个人认为还是移动Home的方法更隐蔽。
| sudo setfile -a V /Users/sysadmin |
|-----|
上面的命令就在Finder里面隐藏了sysadmin管理员帐户的Home目录。
然后,设置LoginWindow不显示特定的帐户。这一点可以借助其它软件来实现,而更方便的是使用命令行. 例如,使用Cocktail软件就可以隐藏管理员帐户在登陆窗口的显示, 如下图.
[![](image/56a5a7ddb4552.jpg)](http://docs.google.com/File?id=dfm3jbw9_234f5cmkwhh_b)
使用命令行的方式,例如下面的命令行隐藏了sysadmin:
| sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add sysadmin |
|-----|
最后,测试:
一定要测试,测试的结果可能是一种方法不能解决,可能需要另外一种或者多种方法组合才能解决问题。
还有一种方法,也可以做到隐藏的作用,但是有点复杂。原理就是,类UNIX系统使用插件的方式以支持现代认证域的概念,这样它具有可以扩展的特性,我们就要利用这个特性来添加一个本地认证域到用户认证系统中,这个方法有它自己的优势。这里不多赘述。
#### 远程管理服务
为了方便远程管理,我们一般需要在客户端打开必要的管理服务,并确认在这些管理服务中,远程管理员帐户/用户组被授权足够权限,一般是所有权限。当然,为了管理分级/分层的需要,有的可以是“Read-Only”权限等。
具体设置在, System Preferences->Sharing, 选中 x和x 的两个选项,并且选择添加用户,赋予足够的权限。
[![](image/56a5a7f395f57.jpg)](http://docs.google.com/File?id=dfm3jbw9_236d32879gb_b)
对于Remote Management还需要具体设定管理员的具体权限,我这里选种了所有的权限。对于不同企业的来说很可能会不一样。
[![](image/56a5a8095e824.jpg)](http://docs.google.com/File?id=dfm3jbw9_237dc3f7gcf_b)
一般来说,要打开Remote Login和RemoteManagement两个选项,这样管理员即可以使用ssh的命令行方式管理客户机,也可以使用Apple RemoteDesktop的图形方式来管理.这两种方式都给管理员以方便远程管理。当然了,一定要注意企业内部的安全管理规定,有的情况或者并不是对所有人都适合这样的设置。
使用命令行也可以达到添加管理员用户为远程管理服务的认可权限。
#### 主密码和FileVault
主密码(Master password)可以用于很多地方,比如,可以不用登陆就重置用户密码,而且用于FileVault,当用户忘记自己的FileVault密码的时候,管理员可以使用主密码恢复用户的FileVault数据, 所以这个主密码很重要,而且应该是全企业统一,各版本统一,即便是需要变更也要保留完整的变更历史。即便企业目前没有计划使用这个功能,也建议设置这个主密码。
官方目前没有中文的说明,英文的在这里:[Creating a master password](http://docs.info.apple.com/article.html?path=Mac/10.5/en/8737.html "Creating a master password")
其实很简单,进入System Preferences的Security的Safe标签,点击Set Master Password,输入密码。如果该项被锁住了,请先开锁。
如果忘记/找不到主密码,可以删除主密码文件,然后再设置一个新的,但是如果有使用FileVault的用户,他们加密数据只有使用原来的主密码才可以解密,新主密码只有在用户数据解密后重新加密,主密码才起作用。
主密码相关文件保存在KeyChain文件里面:/Library/Keychains/FileVaultMaster.keychain和/Library/Keychains/FileVaultMaster.cer。只要删除他们,就可以重置主密码了。所以为了安全起见,一定要检查这两个文件的权限属性,一定要适当。
#### 登陆窗口背景
这是一个关乎外观而无关功能的小技巧,这里只是提醒一下,也就是把默认的LoginWindow的背景画面变更为带有公司宣传或者简单叙述公司使用规章的背景。
首先制作一张公司背景图,应该是JPG格式的,大小,存放在任何一个地方,但是最好给所有人只读的权限,比如说,保存位置在/System/Library/CoreServices/CompanyLogin.jpg
然后使用下面的语句变更背景
<table id="an6c" style="width: 648px; height: 39px;" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000"><tbody><tr><td width="100%"><span style="font-family: courier new,courier;">sudo defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture <br/> /System/Library/CoreServices/CompanyLogin.jpg</span></td></tr></tbody></table>
退出登录后察看是否起作用,否则请检查该图形文件的属性。
#### 常用工具
有好多系统管理工具,这里不可能完全涵盖,只是列出一部分使用最多的。如果谁有好的建议,我们欢迎积极提出反馈。
Cocktail
Onyx
*续:[Mac OS X 10.5快速系统部署实践-制作核心系统镜像(3) v1](http://blog.csdn.net/afatgoat/archive/2009/08/19/4462848.aspx)*
Tony Liu
2009 Calgary
- 前言
- Mac OS X:如何将个人文件夹从默认卷移到其他卷(适合OSX10.5 Leopard)
- Mac OS X:Finder菜单中的Connect to Server选项禁止和打开
- Mac OS X: 苹果机支持的分区表类型及问题解决
- Mac OS X: 偏好Preferences基础(1)
- Mac OS X: 如何变更Office for Mac的注册码
- Mac OS X: 禁止/防止网络用户复制app程序到桌面
- Mac OS X: 用户帐户的选择
- Mac OS X: 实用脚本程序(bash scripts)系列
- Mac OS X: 共享iPhoto图片
- Mac OS X: 实用脚本程序(bash scripts)系列-2
- Mac OS X: 实用脚本程序(bash scripts)系列-3
- Mac OS X: 实用脚本程序(bash scripts)系列-4
- Mac OS X: 实用脚本程序(bash scripts)系列-5
- Mac OS X: 实用脚本程序(bash scripts)系列-6
- Mac OS X:升级rsync和同步应用实例
- Mac OS X: XAMP在Mac上的实现
- Mac OS X瘦身多法
- Mac OS X 10.5快速系统部署实践-计划(2) v1
- Mac OS X 10.5快速系统部署实践-制作核心系统镜像(1) v1
- Mac OS X数据备份方案一例
- Mac OS X数据备份方案一例(2)
- Mac OS X 10.5快速系统部署实践-制作核心系统镜像(2) v1
- Mac OS X: 打印系统治疗
- Mac OS X:禁止崩溃报告
- Mac OS X:Snow Leopard的几个改动(管理员相关)
- Mac OS X排错:雪豹的最新更新Airport可能不支持无线802.11n网络
- Mac OS X:雪豹内置支持读写NTFS卷
- Mac OS X:定制生成新用户的程序包
- Mac OS X:在Windows里面使用命令行设置启动系统
- Mac OS X: 实用脚本程序(bash scripts)系列-7
- Mac OS X:一种从APP中获得PKG的方法
- Mac OS X: bash脚本实现添加无线SSID(Update2009-10-09)
- Mac OS X: 实用脚本程序(bash scripts)系列-8
- Mac OS X 10.5快速系统部署实践-制作核心系统镜像(4) v1
- Mac OS X: 彻底删除GeekTool(bash脚本)
- Mac OS X: 实用脚本程序(bash scripts)系列-9
- 把你的Leopard变成Mac OS X的系统发布服务器(1)
- 把你的Leopard变成Mac OS X的系统发布服务器(2)
- 把你的Leopard变成Mac OS X的系统发布服务器(3)
- Mac OS X: 访问控制远程CUPS服务
- Mac &amp; Win混合平台访问和工具
- Mac OS X: DeployStudio更新v1.0rc16
- Mac: 想当Apple菜鸟不容易(1)
- Mac: 想当 Apple菜鸟不容易(2)
- Mac: 想当 Apple菜鸟不容易(3)
- Mac: 想当 Apple菜鸟不容易(4完)
- Mac电脑上处理摄像机上的存储内容
- Mac OS X: Google自动更新程序的卸载
- 雪豹系统和SMB不兼容的问题的解决汇总
- Mac OS X: 实用脚本程序(bash scripts)系列-10
- Mac OS X:MagicPrefs介绍
- Mac OS X: 系统部署后程序安装的用户提示
- Mac OS X:开启单程序模式
- Mac OS X: 在脚本里关闭Airport
- Mac笔记本电池:十点建议和其它
- Mac OS X: Launchd执行程序的一个例子
- Mac OS X:修改SMART Utility期限限制
- Mac OS X:网络用户环境个性配置实例
- Mac OS X:强制退出CD/DVD盘
- Mac OS X: launchd plist在线编辑器
- Mac OS X: 实用脚本程序(bash scripts)系列-11
- Mac OS X: 实用脚本程序(bash scripts)系列-12
- Mac: 卸载Safari 5.0.2
- Mac OS X: 实用脚本程序(bash scripts)系列-13
- Mac OS X: 文件图标制作和变更(Resource Fork)
- Mac OS X 10.6.6更新之后NTFS只读的解决
- Mac: 网络用户遇到Adobe Reader 9.x/10.x异常退出的解决
- Mac OS X: airport命令的参数
- Mac OS X的Spotlight综述
- Mac OS X:AFP和SMB共享配置详细配置
- Mac OS X:详细解读Munki和应用
- Mac OS X:显示/设置分辨率的命令(源程序)
- Mac OS X: 是否升级到Lion?
- OSX: 禁止Flash Player 10.3自动更新
- OSX脚本:禁止系统自动添加AppStore图标到用户Dock上
- 狮子GM版本的安装
- OS X Lion狮子安装盘的初步研究
- OS X Lion狮子的恢复盘的删除二法
- OSX: Finder的侧边栏(Sidebar)不显示已装载的网络共享
- OSX:隐藏文件或文件夹
- OS X: 实用脚本程序(bash scripts)系列-13
- OS X: 实用脚本程序(bash scripts)系列-14
- OSX:Lion支持登录窗口的Policy Banner
- OSX: 让狮子说中文