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 spctl
page 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 spctl
root 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 sudoers
fichier.
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 spctl
mais 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 sudoers
page 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 su
un 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.