以编程方式修改Mac OS X上的家长控制

时间:2013-05-01 14:37:58

标签: macos osx-mountain-lion automator

Mac OS有一套非常基本的家长控制选项,可让您限制用户对网站和应用的访问权限,以及设定的每日时间限制。我希望能够编写脚本来执行以下操作:

允许从上午8点到9:30访问特定网站,限制访问游戏。 允许从下午5点到下午6点进行一般访问。

我不知道在Mac OS 10.8上编写脚本的方法从哪里开始。有什么建议?这是Automator可以处理的东西,还是我最好使用cron job / shell脚本?

2 个答案:

答案 0 :(得分:14)

使用自10.2以来一直存在的常规ol'托管偏好(aka MCX)框架来强制实施家长控制。它将它们存储在相关用户的mcx_attributes属性中的本地目录服务中。

要在GUI之外设置它们或任何托管设置,您只需要使用dscl工具的mcx插件向用户输入格式正确的plist。 OS X sysadmin社区很好地理解并记录了这样的本地目录服务策略。

开始理解这一点的最简单方法是设置一些家长控制,然后使用/ System / Library / CoreServices中的Directory Utility应用程序或dscl命令检查mcx属性,这将让您探索目录服务就好像它是一个带有cd和ls的文件系统。

一旦你看到在XML中设置的键是什么,你就可以开始自己制作。您也可以使用dscl . -mcxexport命令。这将转储管理配置,然后您可以稍后导入它。查看dscl . -mcxhelp了解mcx插件的下拉列表。

使用脚本查看实现此过程的过程是:

  1. 创建一个包含所需策略信息的xml plist。
  2. 使用dscl . mcximport
  3. 将该plist导入正确的帐户

    更具前瞻性的替代方案是创建配置文件(也只是一个plist文件。)然后使用profiles命令加载它。如果您采用配置文件路由,那么目录服务或dscl命令中没有任何问题需要担心。

答案 1 :(得分:4)

设置来宾帐户登录时间(时间限制或宵禁): 使用以下long comnand,编辑每天的开始和结束值。

dscl . -mcxedit /Users/Guest com.apple.familycontrols.timelimits limits-list '({allowancesActive = 1;curfews = {friday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});monday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});saturday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});sunday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});thursday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});tuesday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});wednesday = ({end = "06:00:00";start = "00:00:00";},{end = "23:59:59";start = "17:00:00";});};groupID = "__COMPUTER__";itemType = "com.apple.familycontrols.timelimits.computer";name = Computer;})'

要查看来宾帐户时间限制的状态:

dscl . -mcxread /Users/Guest com.apple.familycontrols.timelimits limits-list

或:

dscl . -mcxread /Users/Guest com.apple.familycontrols.timelimits limits-list | egrep "end|start" | sort | uniq

涉及的文件: / Library / Managed Preferences / Guest / com.apple.familycontrols.timelimits.plist 包含本地Guest帐户的宵禁数据

/ Library / Managed Preferences / Guest / complete.plist 编制Guest帐户的所有托管首选项设置

这是系统用来设置宵禁的数据: /private/var/db/dslocal/nodes/Default/users/Guest.plist