Usa la NOPASSWD
direttiva
Puoi usare la NOPASSWD
direttiva nel tuo /etc/sudoers
file .
Se viene chiamato il tuo utente e viene chiamato il user
tuo host, host
puoi aggiungere queste righe a /etc/sudoers
:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Ciò consentirà all'utente user
di eseguire i comandi desiderati host
senza immettere una password. Tutti gli altri sudo
comandi ed richiedono comunque una password.
I comandi specificati nel sudoers
file devono essere pienamente qualificati (ovvero utilizzando il percorso assoluto del comando per l'esecuzione) come descritto nella sudoers
pagina man . Fornire un percorso relativo è considerato un errore di sintassi.
Se il comando termina con un /
carattere finale e punta a una directory, l'utente sarà in grado di eseguire qualsiasi comando in quella directory (ma non in alcuna sottodirectory). Nel seguente esempio, l'utente user
può eseguire qualsiasi comando nella directory /home/someuser/bin/
:
user host = (root) NOPASSWD: /home/someuser/bin/
Nota: utilizzare sempre il comando visudo
per modificare il sudoers
file per assicurarsi di non bloccarsi fuori dal sistema, nel caso in cui si scriva accidentalmente qualcosa di errato nel sudoers
file. visudo
salverà il file modificato in una posizione temporanea e sovrascriverà il file reale solosudoers
se il file modificato può essere analizzato senza errori.
Usando /etc/sudoers.d
invece di modificare/etc/sudoers
In alternativa alla modifica del /etc/sudoers
file, è possibile aggiungere le due righe a un nuovo file, ad /etc/sudoers.d
es /etc/sudoers.d/shutdown
. Questo è un modo elegante di separare diverse modifiche ai sudo
diritti e lascia sudoers
intatto il file originale per aggiornamenti più facili.
Nota: ancora una volta, è necessario utilizzare il comando visudo
per modificare il file per assicurarsi di non bloccarsi fuori dal sistema:
sudo visudo -f /etc/sudoers.d/shutdown
Ciò garantisce inoltre automaticamente che il proprietario e le autorizzazioni del nuovo file siano impostati correttamente.
Se sudoers
è incasinato
Se non hai usato visudo
per modificare i tuoi file e poi hai incasinato /etc/sudoers
o incasinato un file per errore, /etc/sudoers.d
verrai bloccato sudo
.
La soluzione potrebbe essere quella di riparare i file usando pkexec
quale è un'alternativa a sudo
.
Per risolvere /etc/sudoers
:
pkexec visudo
Per risolvere /etc/sudoers.d/shutdown
:
pkexec visudo -f /etc/sudoers.d/shutdown
Se la proprietà e / o le autorizzazioni non sono corrette per qualsiasi sudoers
file, il file verrà ignorato, sudo
quindi potresti anche ritrovarti bloccato in questa situazione. Ancora una volta, è possibile utilizzare pkexec
per risolvere questo problema.
Le autorizzazioni corrette dovrebbero essere così:
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
Utilizzare in pkexec
questo modo per correggere la proprietà e le autorizzazioni :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown