2013-05-01 7 views
12

Mac OS bietet eine Reihe grundlegender Optionen für die Kindersicherung, mit denen Sie den Zugriff von Benutzern auf Websites und Apps sowie tägliche Grenzwerte begrenzen können. Ich möchte in der Lage sein, dies zu skandieren, um etwas wie das folgende zu tun:Programmgesteuertes Ändern der Kindersicherung unter Mac OS X

Erlauben Sie Zugang von 8am bis 9:30 für bestimmte Aufstellungsorte, schränken Sie Zugang zu den Spielen ein. Allgemeinen Zugriff von 17:00 bis 18:00 Uhr erlauben.

Ich bin mir nicht sicher, wo ich anfangen soll in Bezug auf das Scripting dies auf Mac OS 10.8. Irgendwelche Vorschläge? Ist das etwas, mit dem Automator umgehen kann, oder sollte ich besser ein Cron-Job/Shell-Skript verwenden?

+0

für eine App wie eine gute Idee klingt. Nicht sicher, ob Apple es im Mac App Store zulassen würde. – Jordan

Antwort

13

Die Parental Controls werden mit den üblichen alten Managed Preference (alias MCX) Frameworks erzwungen, die es seit 10.2 gibt. Sie speichert sie in den lokalen Verzeichnisdiensten im Attribut mcx_attributes für den betreffenden Benutzer.

Um sie oder irgendeine verwaltete Einstellung außerhalb der GUI zu setzen, müssen Sie nur einen korrekt formatierten Plist mit dem mcx-Plugin des Tools dscl in den Benutzer einspeisen. Die Verwendung einer lokalen Verzeichnisdienst-Richtlinie wird von der OS X sysadmin-Community gut verstanden und dokumentiert. Der einfachste Weg, um mit dem Verständnis zu beginnen, besteht darin, einige Jugendschutzeinstellungen einzurichten und dann die mcx-Attribute mit der Directory Utility-App aus/System/Library/CoreServices oder dem Befehl dscl zu untersuchen, mit dem Sie Ihre Verzeichnisdienste untersuchen können wenn es ein Dateisystem mit CD und ls wäre.

Sobald Sie sehen, was die Schlüssel sind, die in der XML gesetzt werden, können Sie anfangen, Ihre eigenen zu basteln. Sie können auch den Befehl dscl . -mcxexport verwenden. Dadurch wird die Verwaltungskonfiguration gelöscht und Sie können sie später importieren. Schauen Sie sich dscl . -mcxhelp für den Überblick über das MCX-Plugin.

den Prozess der Umsetzung dieses mit einem Skript zu überprüfen ist:

  1. eine xml plist erstellen, die die Richtlinieninformationen enthält, die Sie wollen.
  2. Import, die

Eine zukunftsweisende Alternative mit dscl . mcximport auf das richtige Konto plist wäre ein Konfigurationsprofil zu erstellen (die auch nur eine plist-Datei.) Und dann mit dem profiles Befehl laden. Wenn Sie die Konfigurationsprofilroute verwenden, gibt es in den Verzeichnisdiensten oder dem Befehl dscl, über den Sie sich Gedanken machen müssen, keine Unannehmlichkeiten.

+0

Vielen Dank, das ist genau das, was ich gesucht habe! –

+0

Mein Server scheint nicht das MCX-Plugin zu haben. Irgendeine Idee, wenn es eine Möglichkeit gibt, die elterliche Kontrolle ohne die Befehlszeile zu verwalten? – dsjoerg

+0

Welche Version des Betriebssystems verwenden Sie? Es ist dort immer noch in 10.9 mit dem Zusatz eines mcxprofiles-Plugins. Es ist NICHT in der Manpage. Starten Sie einfach dscl und geben Sie 'help' ein, um die gesamte Verwendung zu sehen. – macshome

4

So legen Sie die Login-Zeiten des Gastkontos fest (Zeitlimits oder Sperrstunde): Verwenden Sie die folgende lange Verbindung, bearbeiten Sie die Werte für Start und Ende für jeden Tag.

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;})' 

Um den Status der Gastkonto Fristen siehe:

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

oder:

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

FILES INVOLVED: /Library/Managed Preferences/Gast/com.apple. familycontrols.timelimits.plist Enthält Ausgangssperre Daten für lokales Gastkonto

/Library/Managed Preferences/Gast/complete.plist Kompilation aller verwalteten Einstellungen für Gastkonto

Dies sind die Daten, die das System verwendet, um stellen Sie die Ausgangssperre: /private/var/db/dslocal/nodes/Default/users/Guest.plist