多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
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