使用ARD远程管理用户的Parental Control和Dock

时间:2024-05-19 17:29:39
简短说明: ARD 就是Apple Remote Desktop.

OS X中包括一个对普通用户(其实可能是除了root之外所有用户)权限设置的机制,叫做Parental Control,它可以控制目标用户所能运行的程序、OSX的系统功能设置、以及OS X的内置程序的功能设置(比如Dictionary, Mail等),这个功能给于管理员管理用户权利的一个方便使用的GUI的界面。

然而,这个方便的功能,有的时候也给管理员一点麻烦。对于一个拥有几十台甚至数百台Mac系统的管理环境,在没有OS X Server的网络环境或者基于某种原因没有实施用户Directory Service(LDAP)集中管理的环境中,一旦客户机的软件环境需要变化,那么使用GUI界面重新配制用户权限的工作,对于管理员将是一个恶梦,比如说,安装一个新软件,同时需要准许用户运行该软件,那么需要在Parental Control中进行修改才可以,而不是象在Windows系统中那样,安装完成后给于该用户对软件相应的环境读写权限就可以达到目的。

另外也是为了避免没有必要的手工输入的失误,造成各个系统之间的差异,并能尽快地部署新的功能,管理员们需要一种命令行的方式来部署系统和功能。

上面都是一些解释,下面是如何在OS X 10.4 Tiger里面如何实现(因为在OS X 10.5里面有了特别大的改变,以后会整理关于Leopard的操作)。

一:Parental Control

最主要的概念是,Parental Contorl是通过NetInfo里面的MCX来管理的,所以/usr/bin/niutil命令是关键,(在Leopard中改变为使用dscl命令组来操作)。

1. 首先,在一台标准机器中,通过正常的GUI界面来设置本地用户账号(比如:student)的Parental Contorl设置,并作充分的测试确认无误。
2. 输入下面Unix命令,这样我们就得到了standard_plist.bash文件,其中包含了该本地用户的所有mcx设置。
niutil -readprop . /users/student mcx_settings > standard_plist.bash
3. 使用TextEdit.app打开该文件,并在文件的最开始加入下面两行的内容:
#!/bin/bash
mcx_var=$(cat <<'EndOfParameter'

4. 再在最后面加入两行, 并保存:
EndOfParameter)
niutil -createprop . /users/student mcx_settings "$mcx_var"

5. 把该文件变成可运行的(chmod 740 standard_plist.bash)

二:Dock

上面说了最麻烦的部分,下面是相对简单的部分了,修改用户的Dock的应用程序图标--添加删除等:
1. 同样也是在一个标准机器和用户中,设置好所有用户的统一的Dock, 这样该用户的Dock的设置就保存在该用户的目录中的com.apple.Dock.plist文件中了(~/Library/Preferences/)。
2. 通过ARD把该文件复制到目标机器的目标用户目录中,下面是一个例子:
使用ARD远程管理用户的Parental Control和Dock
其中要注意,应该选择“Inherit from destination folder”,除非有特殊需要。
这样,目标机上的用户重新登陆后,就可以看到自己的Dock的变化了。