Come la maggior parte delle cose su Linux, il comando sudo è molto configurabile. Puoi fare in modo che sudo esegua comandi specifici senza chiedere una password, limiti utenti specifici solo ai comandi approvati, comandi di log eseguiti con sudo e altro ancora.
Il comportamento del comando sudo è controllato dal file / etc / sudoers sul tuo sistema. Questo comando deve essere modificato con il comando visudo, che esegue il controllo della sintassi per assicurarsi di non rompere accidentalmente il file.
Specificare gli utenti con autorizzazioni Sudo
L'account utente che crei durante l'installazione di Ubuntu è contrassegnato come account amministratore, il che significa che può utilizzare sudo. Eventuali account utente aggiuntivi che crei dopo l'installazione possono essere account utente standard o amministratore: gli account utente standard non dispongono di autorizzazioni sudo.
Puoi controllare graficamente i tipi di account utente dallo strumento Account utente di Ubuntu. Per aprirlo, fai clic sul tuo nome utente nel pannello e seleziona Account utente o cerca Account utente nel trattino.
Fai in modo che Sudo dimentichi la tua password
Per impostazione predefinita, sudo ricorda la tua password per 15 minuti dopo averla digitata. Questo è il motivo per cui devi digitare la tua password solo una volta quando esegui più comandi con sudo in rapida successione. Se stai per consentire a qualcun altro di utilizzare il tuo computer e vuoi che sudo chieda la password quando viene eseguito successivamente, esegui il seguente comando e sudo dimenticherà la tua password:
sudo –k
Chiedi sempre una password
Se preferisci che ti venga richiesto ogni volta che usi sudo, ad esempio se altre persone hanno regolarmente accesso al tuo computer, puoi disabilitare completamente il comportamento di memorizzazione della password.
Questa impostazione, come altre impostazioni di sudo, è contenuta nel file / etc / sudoers. Esegui il comando visudo in un terminale per aprire il file per la modifica:
sudo visudo
Nonostante il suo nome, questo comando utilizza per impostazione predefinita il nuovo editor nano intuitivo invece del tradizionale editor vi su Ubuntu.
Aggiungi la seguente riga sotto le altre righe di Default nel file:
Il valore predefinito è timestamp_timeout = 0
Premi Ctrl + O per salvare il file, quindi premi Ctrl + X per chiudere Nano. Sudo ora ti chiederà sempre una password.
Modifica il timeout della password
Per impostare un timeout della password diverso, uno più lungo come 30 minuti o uno più breve come 5 minuti, segui i passaggi precedenti ma usa un valore diverso per timestamp_timeout. Il numero corrisponde al numero di minuti per cui sudo ricorderà la tua password. Per fare in modo che sudo ricordi la tua password per 5 minuti, aggiungi la seguente riga:
Il valore predefinito è timestamp_timeout = 5
Non chiedere mai una password
Puoi anche fare in modo che sudo non chieda mai una password: finché sei loggato, ogni comando a cui aggiungi sudo verrà eseguito con i permessi di root. Per fare ciò, aggiungi la seguente riga al tuo file sudoers, dove username è il tuo nome utente:
nome utente ALL = (ALL) NOPASSWD: ALL
Puoi anche modificare la riga% sudo, ovvero la riga che consente a tutti gli utenti del gruppo sudo (noto anche come utenti amministratori) di utilizzare sudo, per fare in modo che tutti gli utenti amministratori non richiedano password:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
Esegui comandi specifici senza password
Puoi anche specificare comandi specifici che non richiederanno mai una password se eseguiti con sudo. Invece di utilizzare "ALL" dopo NOPASSWD sopra, specificare la posizione dei comandi. Ad esempio, la riga seguente consentirà al tuo account utente di eseguire i comandi apt-get e shutdown senza password.
nome utente ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
Ciò può essere particolarmente utile quando si eseguono comandi specifici con sudo in uno script.
Consenti a un utente di eseguire solo comandi specifici
Sebbene sia possibile inserire nella lista nera comandi specifici e impedire agli utenti di eseguirli con sudo, ciò non è molto efficace. Ad esempio, potresti specificare che un account utente non è in grado di eseguire il comando di spegnimento con sudo. Ma quell'account utente potrebbe eseguire il comando cp con sudo, creare una copia del comando shutdown e spegnere il sistema utilizzando la copia.
Un modo più efficace è inserire nella whitelist comandi specifici. Ad esempio, potresti dare a un account utente Standard il permesso di usare i comandi apt-get e shutdown, ma non di più. A tale scopo, aggiungi la seguente riga, dove standarduser è il nome utente dell'utente:
standarduser ALL = / usr / bin / apt-get, / sbin / shutdown
Il seguente comando ci dirà quali comandi l'utente può eseguire con sudo:
sudo -U standarduser –l
Registrazione dell'accesso a Sudo
Puoi registrare tutti gli accessi sudo aggiungendo la seguente riga. / var / log / sudo è solo un esempio; puoi utilizzare qualsiasi posizione del file di registro che preferisci.
Il valore predefinito è logfile = / var / log / sudo
Visualizza il contenuto del file di registro con un comando come questo:
sudo cat / var / log / sudo
Tieni presente che, se un utente ha accesso illimitato a sudo, quell'utente ha la possibilità di eliminare o modificare il contenuto di questo file. Un utente potrebbe anche accedere a un prompt di root con sudo ed eseguire comandi che non verrebbero registrati. La funzione di registrazione è particolarmente utile se abbinata ad account utente che hanno accesso limitato a un sottoinsieme di comandi di sistema.