Verwenden Sie Gatekeeper, um den Zugriff auf Anwendungen zu steuern
Mit spctl
(Gatekeeper) können Sie Listen genehmigter und nicht genehmigter Apps erstellen.
Angenommen, Sie möchten Mail zulassen, aber Chrome blockieren.
sudo spctl --add --label "ApprovedApps" /Applications/Mail.app
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app
Mit dem obigen Befehl werden Mail und Chrome als "Genehmigt" bzw. "Verweigert" "gekennzeichnet" (Sie können Ihre eigenen Deskriptoren verwenden).
Um Apps zu aktivieren / deaktivieren, geben Sie jetzt die folgenden Befehle ein:
sudo spctl --enable --label "ApprovedApps"
sudo spctl --disable --label "DeniedApps"
Dies hat den Vorteil, dass Sie zum Hinzufügen einer weiteren App zu einer der beiden Listen nur die entsprechende Bezeichnung hinzufügen müssen:
sudo spctl --add --label "ApprovedApps" /Applications/Another.app
Darüber hinaus können Sie die Ausführung von Code aus dem Mac App Store verbieten ( spctl
siehe Manpage - man spctl
).
spctl --disable --label "Mac App Store"
Dadurch wird verhindert, dass jemand eine App aus dem App Store herunterlädt und installiert / ausführt.
Umgang mit Admins /sudoers
Wie in den Kommentaren angegeben, kann ein Administrator alles, was ein Administrator tun kann, rückgängig machen. Die Verwendung spctl
erfordert root, aber das Bearbeiten der sudoers-Datei, um den Zugriff auf einen bestimmten Befehl einzuschränken, kann verhindern, dass andere Benutzer / Administratoren Ihre Änderungen rückgängig machen.
Siehe Wie kann verhindert werden, dass Sudo-Benutzer bestimmte Befehle ausführen? Einzelheiten zum Konfigurieren einer "Whitelist mit Ausnahme" in Ihrer sudoers
Datei.
Um dem Benutzer Sam beispielsweise den Zugriff auf alle Befehle außer zu ermöglichen spctl
, müssen Sie Folgendes in die sudoers-Datei einfügen:
sam ALL = ALL, !/usr/sbin/spctl
Dies ist eine "schnelle und schmutzige" Methode, um den Zugriff auf zu verhindern. spctl
Letztendlich ist sie jedoch nicht effektiv, da der andere Administrator, wenn er mit Ihrer Strategie vertraut ist, nur den Befehl umbenennen muss und Zugriff hat.
Von der sudoers
Manpage:
Wenn ein Benutzer sudo ALL hat, hindert ihn nichts daran, ein eigenes Programm zu erstellen, das ihm eine Root-Shell gibt (oder eine eigene Kopie einer Shell erstellt), unabhängig von einem "!" Elemente in der Benutzerspezifikation.
Um es wirklich zu sperren, müssten Sie entweder den anderen Benutzer su
als einen anderen Benutzer (dh einen anderen Operator) zwingen oder eine Whitelist mit zulässigen Befehlen erstellen, die standardmäßig alles andere blockieren. Dies ist jedoch zeitaufwändig und ziemlich gefährlich, da Sie Personen von kritischen Funktionen ausschließen können.