Voglio impedire agli utenti con accesso sudo di utilizzare sudo
eseguire passwd
(e quindi modificando la password di root).
È possibile? Se è così, come può essere realizzato?
Voglio impedire agli utenti con accesso sudo di utilizzare sudo
eseguire passwd
(e quindi modificando la password di root).
È possibile? Se è così, come può essere realizzato?
Risposte:
In pratica, non puoi vietare agli utenti di eseguire un particolare comando, se sono ancora autorizzati a eseguire tutti gli altri comandi, che potrebbero copiare passwd
a really-not-passwd-i-promise
ed eseguirlo.
Se vuoi impedire a sudoers di modificare la password di root o la password di qualcun altro, non puoi impedirlo neanche; possono modificare manualmente /etc/shadow
a condizione che abbiano i privilegi di root usando sudo.
(Ciò potrebbe essere ottenuto, ad esempio, usando Kerberos o LDAP per l'autenticazione - in questo modo nessuno potrebbe cambiare la password di un altro utente - ma ancora nulla può impedire a sudoers di interrompere semplicemente la configurazione o qualcosa del genere.)
Fondamentalmente, non dare pieno sudo
diritti a persone di cui non ti fidi. Proibire un singolo comando e consentire a tutti gli altri non può essere fatto.
sudo
i diritti sarebbero creare un gruppo di utenti con accesso ad alcuni dei root
abilità. Ma @PaulDC, ci dovrebbe essere poco motivo per cui altri utenti al di fuori del sysadmin dovrebbero avere privilegi di root (in particolare gli utenti discutibili). Fai qualche ricerca per gruppi di utenti e visudo
. Potrebbe essere il più vicino possibile (ma è necessario definire ogni cosa specifica che può essere fatta per limitarlo ed evitare editor come vim / emacs poiché ciò consentirebbe la modifica dei file con diritti di amministratore).
È molto difficile mantenere l'utente root fuori da qualsiasi cosa, ma credo che tu possa farlo con AppArmor.
Il problema è, come lo configureresti in modo che le password legittime cambino può accadere?
Il trucco potrebbe impostare un profilo AppArmor per sudo
che è ereditato da tutti i suoi figli. Ciò non influisce sugli utenti che eseguono passwd come se stessi (per modificare la propria password) e non influisce sugli utenti che inseriscono root tramite su
.
Tuttavia, sospetto che tu possa eludere ciò copiando, spostando o rinominando il sudo
binario, quindi probabilmente vorrai bloccare passwd
accesso in scrittura per tutti i processi di root, e quindi cambiarlo sempre usando un CD live.
Ovviamente, devi anche proteggere AppArmor stesso dalle modifiche. :)
La soluzione migliore è probabilmente anche dare accesso sudo solo per comandi specifici e solo per comandi che non cambiano il filesystem.
che dire di questo:
modificare / etc / sudoers file come di seguito:
%wheel ALL=(ALL) ALL,!/usr/bin/* /etc/shadow,!/usr/bin/* /etc/sudoers\
,!/usr/bin/* /usr/bin/su,!/usr/bin/su,!/usr/sbin/visudo
quindi nessun comando accessibile su questi file e sudo su
pure.
more
oless
)