Utilisez Gatekeeper pour contrôler l'accès aux applications
Vous pouvez utiliser spctl(Gatekeeper) pour créer des listes d'applications approuvées et non approuvées.
Par exemple, supposons que vous souhaitiez autoriser Mail mais bloquer Chrome.
sudo spctl --add --label "ApprovedApps" /Applications/Mail.app
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app
La commande ci-dessus "étiquetera" Mail et Chrome respectivement "Approuvé" et "Refusé" (vous pouvez utiliser vos propres descripteurs).
Maintenant, pour activer / désactiver les applications, vous émettez les commandes:
sudo spctl --enable --label "ApprovedApps"
sudo spctl --disable --label "DeniedApps"
L'avantage que cela présente est que pour ajouter une autre application à l'une ou l'autre liste, il vous suffit d'ajouter l'étiquette appropriée:
sudo spctl --add --label "ApprovedApps" /Applications/Another.app
De plus, vous pouvez interdire l'exécution du code du Mac App Store (disponible dans la spctlpage de manuel - man spctl).
spctl --disable --label "Mac App Store"
Cela empêchera quiconque de télécharger une application sur l'App Store et de l'installer / l'exécuter.
Traiter avec les administrateurs /sudoers
Comme indiqué dans les commentaires, tout ce qu'un administrateur peut faire, un autre administrateur peut l'annuler. L'utilisation de spctlroot nécessite, mais la modification du fichier sudoers pour restreindre l'accès à une commande particulière peut empêcher d'autres utilisateurs / administrateurs d'annuler vos modifications.
Voir Comment empêcher les utilisateurs sudo d'exécuter des commandes spécifiques? pour plus de détails sur la façon de configurer une "liste blanche avec exception" dans votre sudoersfichier.
Par exemple, pour autoriser l'utilisateur Sam à accéder à toutes les commandes sauf spctl , vous devez mettre le fichier sudoers:
sam ALL = ALL, !/usr/sbin/spctl
Maintenant, c'est un moyen "rapide et sale" d'empêcher l'accès spctlmais finalement, ce n'est pas efficace parce que si l'autre administrateur est sage à votre stratégie, tout ce qu'il / elle a à faire est de renommer la commande et ils ont accès.
Depuis la sudoerspage de manuel:
En général, si un utilisateur a sudo ALL, rien ne l'empêche de créer son propre programme qui lui donne un shell racine (ou de faire sa propre copie d'un shell) quel que soit le "!" dans la spécification utilisateur.
Pour vraiment le verrouiller, vous devez soit forcer l'autre utilisateur à utiliser suun autre utilisateur (c'est-à-dire un opérateur), soit créer une liste blanche de commandes autorisées par défaut pour bloquer tout le reste. Cependant, cela prend du temps et est assez dangereux car vous pouvez bloquer des personnes sur des fonctions critiques.