Introduzione

Il comando sudo consente agli utenti di eseguire programmi come un altro utente, per impostazione predefinita come l'utente root.


Di solito, per concedere l'accesso sudo a un utente è necessario aggiungere l'utente al gruppo sudo definito nel sudoers file. Su Debian, Ubuntu e i loro derivati, i membri del gruppo sudo hanno i privilegi di sudo mentre su distribuzioni basate su RedHat come CentOS e Fedora, il nome del gruppo sudo è wheel. A ciascun membro di questo gruppo verrà richiesto di inserire la password prima di eseguire un comando sudo . Ciò aggiunge un ulteriore livello di sicurezza ed è il modo preferito di concedere i privilegi di sudo agli utenti.


Tuttavia, in alcune situazioni, come l'esecuzione di script automatici, potrebbe essere necessario configurare il file sudoers e consentire a determinati utenti di eseguire comandi sudo senza che venga richiesta la password.

Aggiunta dell'utente al file Sudoers

Il file sudoers contiene informazioni che determinano i privilegi di sudo dell'utente e del gruppo.

È possibile configurare l'accesso all'utente sudo modificando il file sudoers o aggiungendo un file di configurazione alla directory /etc/sudoers.d. I file creati all'interno di questa directory verranno inclusi nel file sudoers.

Prima di apportare modifiche, è consigliabile eseguire il backup del file corrente:

sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)}

Il comando date aggiungerà la data corrente al nome del file di backup.

Apri il file /etc/sudoers con il comando visudo:

sudo visudo

Quando si apportano modifiche al file sudoers, utilizzare sempre visudo. Questo comando controlla il file dopo la modifica e se si verifica un errore di sintassi non salverà le modifiche. Se si apre il file con un editor di testo, un errore di sintassi comporterà la perdita dell'accesso sudo.

Sulla maggior parte dei sistemi, il comando visudo apre il file /etc/sudoers con l'editor di testo vim. Se non hai esperienza con vim puoi usare un altro editor di testo. Ad esempio, per modificare il file sudoers con il comando visudo utilizzando un editor diverso come GNU nano dovresti eseguire:

sudo EDITOR=nano visudo

Scorri verso il basso fino alla fine del file e aggiungi la seguente riga che consentirà all'utente di eseguire qualsiasi comando sudo senza che ti venga richiesta una password:

nome_utente  ALL=(ALL) NOPASSWD:ALL

Non dimenticare di cambiare "nome_utente" con il nome utente a cui vuoi concedere l'accesso.

Se si desidera consentire all'utente di eseguire solo comandi specifici senza immettere la password, specificare i comandi dopo la parola chiave NOPASSWD.

Ad esempio, per consentire solo i comandi mkdir e mv dovrai usare:

nome_utente ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv

Al termine, salva e chiudi il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.

Utilizzarre il file /etc/sudoers.d

Invece di modificare il file sudoers è possibile creare un nuovo file con le regole di autorizzazione nella directory /etc/sudoers.d. Questo approccio rende più gestibile la gestione dei privilegi di sudo.

Apri il tuo editor di testo e crea il file:

sudo nano /etc/sudoers.d/nome_utente

È possibile assegnare un nome al file, in genere è consigliabile utilizzare il nome utente come nome del file. Aggiungi la stessa regola che vorresti aggiungere al file sudoers:

nome_utente  ALL=(ALL) NOPASSWD:ALL

Al termine, salva e chiudi il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.

Conclusione

Abbiamo visto come modificare il file sudoers in modo da poter eseguire i comandi sudo senza inserire una password. Ciò è utile quando si dispone di script in cui un utente non root deve eseguire attività amministrative.