Utilice Gatekeeper para controlar el acceso a aplicaciones
Puede utilizar spctl
(Gatekeeper) para crear listas de aplicaciones aprobadas y no aprobadas.
Por ejemplo, suponga que desea permitir Mail pero bloquear Chrome.
sudo spctl --add --label "ApprovedApps" /Applications/Mail.app
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app
El comando anterior etiquetará a Mail y Chrome como "Aprobadas" y "Denegadas" respectivamente (puede utilizar sus propios descriptores).
Ahora, para habilitar/deshabilitar aplicaciones, emita los comandos:
sudo spctl --enable --label "ApprovedApps"
sudo spctl --disable --label "DeniedApps"
La ventaja de esto es que para agregar otra aplicación a cualquiera de las listas, solo tiene que agregar la etiqueta apropiada:
sudo spctl --add --label "ApprovedApps" /Applications/Otra.app
Además, puede prohibir que el código de la Mac App Store se ejecute (se encuentra en la página man de spctl
- man spctl
).
spctl --disable --label "Mac App Store"
Esto evitará que cualquier persona descargue una aplicación de la App Store y la instale/ejecute.
Tratando con Administradores/sudoers
Como se menciona en los comentarios, cualquier cosa que un Administrador pueda hacer, otro Administrador puede deshacer. Utilizar spctl
requiere permisos de root, pero editar el archivo sudoers para restringir el acceso a un comando en particular puede evitar que otros usuarios/administradores deshagan sus cambios.
Vea Cómo evitar que los usuarios sudo ejecuten comandos específicos para obtener detalles sobre cómo configurar una "lista blanca con excepciones" en su archivo sudoers
.
Por ejemplo, para permitir que el usuario Sam tenga acceso a todos los comandos excepto spctl
, debería agregar en el archivo sudoers:
sam ALL = ALL, !/usr/sbin/spctl
Esta es una forma "rápida y sucia" de prevenir el acceso a spctl
, pero en última instancia, no es efectiva porque si el otro administrador se da cuenta de su estrategia, todo lo que tiene que hacer es cambiar el nombre del comando y tendrá acceso.
Desde la página man de sudoers
:
En general, si un usuario tiene sudo ALL no hay nada que evite que creen su propio programa que les dé un shell de root (o hagan su propia copia de un shell) independientemente de cualquier elemento `!' en la especificación del usuario.
Para realmente asegurarlo, debería obligar al otro usuario a hacer su
como un usuario diferente (es decir, operador) o crear una lista blanca de comandos permitidos que bloqueen por defecto todo lo demás. Sin embargo, esto es consumidor de tiempo y bastante peligroso ya que puede bloquear a las personas de funciones críticas.