Utilizzare Gatekeeper per controllare l'accesso alle applicazioni
È possibile utilizzare spctl
(Gatekeeper) per creare elenchi di app approvate e non approvate.
Ad esempio, supponiamo che tu voglia consentire Mail ma blocchi Chrome.
sudo spctl --add --label "ApprovedApps" /Applications/Mail.app
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app
Il comando sopra "etichetta" Mail e Chrome come rispettivamente "Approvato" e "Negato" (puoi usare i tuoi descrittori).
Ora, per abilitare / disabilitare le app, emetti i comandi:
sudo spctl --enable --label "ApprovedApps"
sudo spctl --disable --label "DeniedApps"
Il vantaggio di questo è che per aggiungere un'altra app a entrambi gli elenchi, è sufficiente aggiungere l'etichetta appropriata:
sudo spctl --add --label "ApprovedApps" /Applications/Another.app
Inoltre, puoi impedire l'esecuzione del codice dal Mac App Store (disponibile nella spctl
pagina man - man spctl
).
spctl --disable --label "Mac App Store"
Ciò impedirà a chiunque di scaricare un'app dall'App Store e installarla / eseguirla.
Trattare con amministratori /sudoers
Come indicato nei commenti, qualsiasi cosa un amministratore può fare, un altro amministratore può annullare. L'uso spctl
richiede root, ma la modifica del file sudoers per limitare l'accesso a un determinato comando può impedire ad altri utenti / amministratori di annullare le modifiche.
Vedi Come impedire agli utenti sudo di eseguire comandi specifici? per i dettagli su come configurare una "lista bianca con eccezione" nel tuo sudoers
file.
Ad esempio, per consentire all'utente Sam l'accesso a tutti i comandi tranne spctl
, inserire il file sudoers:
sam ALL = ALL, !/usr/sbin/spctl
Ora, questo è un modo "rapido e sporco" per impedire l'accesso spctl
ma alla fine non è efficace perché se l'altro amministratore diventa saggio della tua strategia, tutto ciò che deve fare è rinominare il comando e loro hanno accesso.
Dalla sudoers
pagina man:
In generale, se un utente ha sudo TUTTO non c'è nulla che gli impedisca di creare il proprio programma che gli dia una shell di root (o fare la propria copia di una shell) indipendentemente da qualsiasi `! ' elementi nelle specifiche dell'utente.
Per bloccarlo davvero, dovresti forzare l'altro utente su
come un altro utente (cioè operatore) o creare una lista bianca di comandi consentiti che di default bloccano tutto il resto. Tuttavia, ciò richiede tempo e abbastanza pericoloso in quanto è possibile bloccare le persone dalle funzioni critiche.