虽然我们的大部分账户都是通过工作组经理进行pipe理的,但我们经常在当地工作的K-12机构设立本地账户,用于期末政府考试。
把电脑锁好,让学生在考试期间只能使用文字处理器,不能上网。 我做了一个本地用户testing帐户,并调整了家长控制下的一些设置。 然后,我可以导出它们:
dscl . -mcxexport /Users/testuser -o parental_controls.plist
并重新导入它们以达到良好的效果:
dscl . -mcximport /Users/testuser parental_controls.plist
在做这件事时看着文件系统,我注意到我列入白名单的应用程序是由家长控制在后台签名的,这在设置中被记住了。 我的出口plist内衬这样(重新格式化为可读性):
<key>appID</key> <data>+t4MAAAAACgAAAABAAAACAAAABQOiCi6O1EFrBaCbNrFU4pEjwH8zg==</data> <key>bundleID</key> <string>com.microsoft.Word</string> <key>displayName</key> <string>Word</string> <key>path</key> <string>/Applications/Microsoft Office 2008/Microsoft Word.app</string>
我find了一个很好的指导码 。 不幸的是,它说你需要自己的证书来签署应用程序。 [而且,由于这已经变得比我想象的更多了,我可能会手动去60台计算机,并且通过脚本编写钥匙串来创build一个新的代码签名证书,以便我可以签署一些特定的应用程序,然后启用家长控制似乎是一个疯狂的地方。]
我做了testing,看看会发生什么,如果我删除了密钥,并且托pipe用户无法启动应用程序。
有没有一个明智的方法吗?
我不确定这是您正在寻找的内容,但是您可以在计算机组级别上使用Workgroup Manager限制应用程序使用情况。
显然,你需要一个带有OpenDirectory的OS X Server。 您可以在Workgroup Manager中定义一个计算机组,添加您要用于考试的Mac,并在该组的首选项对话框中限制应用程序。 我想你会需要在每台计算机上使用完全相同的应用程序版本。
但是我不得不承认,我从来没有真正地testing过这个东西,只是在几年前,当我在Tiger服务器上玩转之前,对它进行了简短的certificate。
我确实想提到,当您在Workgroup Manager中设置应用程序白名单/黑名单时,它将使您能够按path范围而不仅仅是应用程序的签名密钥。 甚至可以在本地用户或组上执行此操作,然后导入/导出值。