Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

sudo (superuser do) consente di eseguire un comando come se si fosse un altro utente. Effettua una specie di sostituzione, previa autorizzazione, tra l'utente attuale (colui che esegue il comando sudo) e l'utente target (colui che esegue l'effettivo comando).

Mentre con il comando su si cambia utente fino al termine della sessione del terminale, sudo assegna i privilegi dell'utente target al solo processo che viene con esso avviato.

Utilizzo

Per eseguire dei comandi con privilegi d'amministrazione è sufficiente digitare sudo e successivamente il comando che si desidera eseguire come utente root, come nel seguente esempio:

sudo nano /etc/modules

L'utente target non deve essere necessariamente l'amministratore, ma può essere un qualsiasi utente del sistema. Per scegliere l'utente target, usare l'opzione -u:

sudo -u target comando

Una volta digitato il comando, il sistema chiederà la password dell'utente attuale e non la password dell'utente target (a meno che non si configuri sudo in modo diverso). La password viene chiesta la prima volta e memorizzata per un certo lasso di tempo, quindi è possibile usare il comando sudo più volte consecutive senza dover inserire ogni volta la password.

Per motivi di sicurezza il terminale non mostra nessun carattere di inserimento della password. A differenza delle richieste grafiche, nel terminale non vengono mostrati nemmeno gli asterischi di mascheramento. Digitare correttamente la password e premere Invio.

Con sudo l'amministratore del sistema può assegnare privilegi particolari a qualsiasi utente, definire quali comandi far eseguire e quali no, avere il log di tutte le operazioni effettuate e ricevere via email informazioni su tentativi di accesso non autorizzati.

Parametri alla riga di comando

sudo può essere lanciato con una serie di parametri che ne modificano il funzionamento temporaneamente. Quelli che seguono sono una parte delle opzioni disponibili:

Opzione

Risultato

-H

imposta la variabile di sistema «$HOME» con la cartella Home dell'utente target, cioè quello che eseguirà il comando, normalmente root; in maniera predefinita sudo lascia inalterata la «$HOME»

-b

esegue il comando in background

-k

serve a eliminare il salvataggio della password per l'utente; al successivo utilizzo di sudo verrà nuovamente richiesta la password

-l

visualizza i comandi che si è autorizzati a usare o non usare

-i

consente di entrare nella riga di comando come utente target simulando l'accesso per il nuovo utente e impostando le variabili d'ambiente; in pratica consente all'utente di diventare root e quindi non dover utilizzare sudo ad ogni successivo comando

-s

consente di entrare nella riga di comando come utente target; questa opzione è quasi identica a -i, ma non imposta le variabili d'ambiente dell'utente target

Configurazione

È possibile modificare la configurazione di sudo con il seguente comando:

sudo visudo

Il file di configurazione /etc/sudoers è composto da tre sezioni:

Impostazione degli alias

In questa sezione vengono definiti degli alias in modo da potersi riferire, successivamente, in modo più semplice alle informazioni per la configurazione dei privilegi utente.

Le istruzioni di definizione degli alias seguono la forma:

tipo_alias NOME_ALIAS = voce1, voce2, voce3 ... voceX

Dove «tipo_alias» può essere:

Quelli che seguono sono degli esempi:

Impostazione delle opzioni predefinite

È possibile configurare il comportamento standard di sudo impostando una serie di parametri con la parola chiave «Defaults».

Ci sono decine di parametri configurabili con Defaults, i principali sono i seguenti:

Impostazione delle autorizzazioni

I comandi per l'impostazione dei privilegi definiscono quali utenti possono utilizzare quali comandi, da quali host e in che modo.

La forma generale è la seguente:

elenco_utenti elenco_host = (user_target) elenco_comandi

Con la parola chiave «NOPASSWD» è possibile può indicare a sudo che per i comandi definiti successivamente non è richiesto l'inserimento della password. Inoltre, si può negare l'esecuzione di un comando, o un gruppo di comandi, inserendo prima di «elenco_comandi» un punto esclamativo «!». Questa modalità è comunque sconsigliata in quanto è sempre possibile aggirare la negazione rinominando il comando.

Quelli che seguono sono degli esempi:

Abilitare l'accesso come utente root

Per impostazione predefinita in Ubuntu l'accesso come utente root è disabilitato per motivi di sicurezza. Qualora si debba usare l'utente root in maniera occasionale, è possibile utilizzarlo temporaneamente tramite il comando:

sudo su

Se strettamente necessario, è comunque possibile abilitare l'accesso come utente root assegnandogli una password con il seguente comando:

sudo passwd root

La procedura richiede di inserire prima la password relativa a sudo, quindi quella per l'utente root e la successiva conferma.

Per disabilitare l'accesso come amministratore si può usare il seguente comando:

sudo passwd -l root

In questo modo l'accesso come utente root risulterà nuovamente bloccato.

Per rimuovere la password assegnata all'utente root usare il seguente comando:

sudo passwd -d root

In questo modo l'accesso come utente root tramite la sua password risulterà impossibile.

Risoluzione problemi

Ripristino permessi Home utente

Con l'utilizzo del semplice comando sudo, senza variabili d'ambiente, potrebbe capitare che alcuni file nella propria Home diventino inavvertitamente proprietà di root.

Per risolvere consultare questa guida.

Ridirezione dell'output

Redirigere l'output di alcuni comandi eseguiti con sudo può portare nuovi utenti a strane conclusioni (ad esempio sudo ls > /root/file). Per raggirare tali problemi si può utilizzare sudo sh -c 'ls > /root/file', utilizzando Adverbio o semplicemente utilizzando sudo -s per aprire un terminale in con i privilegi di amministrazione e operare all'interno di esso.

Ulteriori risorse


CategorySicurezza CategoryAmministrazione

AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo (l'ultima modifica è del 28/01/2024 18.36.19, fatta da jeremie2)