脚本Mac家长控制应用程序白名单 – 任何人都有成功?

虽然我们的大部分账户都是通过工作组经理进行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用户无法启动应用程序。

有没有一个明智的方法吗?

  • 脚本这个过程
    • 也许我可以使用现有的证书?
    • 也许苹果有一个家长控制CLI实用程序,我可以打电话,将签署他们?
  • 从Workgroup Manager为整个实验室pipe理本地帐户?
  • 或者对许多计算机执行相同的步骤?

我不确定这是您正在寻找的内容,但是您可以在计算机组级别上使用Workgroup Manager限制应用程序使用情况。

显然,你需要一个带有OpenDirectory的OS X Server。 您可以在Workgroup Manager中定义一个计算机组,添加您要用于考试的Mac,并在该组的首选项对话框中限制应用程序。 我想你会需要在每台计算机上使用完全相同的应用程序版本。

但是我不得不承认,我从来没有真正地testing过这个东西,只是在几年前,当我在Tiger服务器上玩转之前,对它进行了简短的certificate。

我确实想提到,当您在Workgroup Manager中设置应用程序白名单/黑名单时,它将使您能够按path范围而不仅仅是应用程序的签名密钥。 甚至可以在本地用户或组上执行此操作,然后导入/导出值。