Comando sudo - Executando comandos com privilégios elevados no Linux - 01
Sommario:
- Installazione di Sudo (comando sudo non trovato)
- Installa Sudo su Ubuntu e Debian
- Installa Sudo su CentOS e Fedora
- Aggiunta dell'utente ai sudatori
- Come usare Sudo
- Timeout password
- Esegui un comando come utente diverso dalla radice
- Come reindirizzare con Sudo
- Conclusione
Il comando sudo consente di eseguire programmi come un altro utente, per impostazione predefinita l'utente root. Se passi molto tempo sulla riga di comando, sudo è uno dei comandi che userai abbastanza frequentemente.
L'uso di sudo invece dell'accesso come root è più sicuro perché è possibile concedere privilegi amministrativi limitati ai singoli utenti senza che siano a conoscenza della password di root.
In questo tutorial, spiegheremo come usare il comando
sudo
.
Installazione di Sudo (comando sudo non trovato)
Il pacchetto sudo è preinstallato sulla maggior parte delle distribuzioni Linux.
Per verificare se il pacchetto sudo è installato sul tuo sistema, apri la tua console, digita
sudo
e premi
Enter
. Se hai installato sudo il sistema visualizzerà un breve messaggio di aiuto, altrimenti vedrai qualcosa come il
sudo command not found
.
Se sudo non è installato, puoi installarlo facilmente usando il gestore pacchetti della tua distribuzione.
Installa Sudo su Ubuntu e Debian
Installa Sudo su CentOS e Fedora
Aggiunta dell'utente ai sudatori
Per impostazione predefinita, sulla maggior parte delle distribuzioni Linux concedere l'accesso sudo è semplice come aggiungere l'utente al gruppo sudo definito nel file
sudoers
. I membri di questo gruppo saranno in grado di eseguire qualsiasi comando come root. Il nome del gruppo può differire da distribuzione a distribuzione.
Nelle distribuzioni basate su RedHat come CentOS e Fedora, il nome del gruppo sudo è
wheel
. Per aggiungere l'utente all'esecuzione del gruppo:
usermod -aG wheel username
Su Debian, Ubuntu e i loro derivati, i membri del gruppo
sudo
hanno accesso con sudo:
usermod -aG sudo username
L'account utente root in Ubuntu è disabilitato di default per motivi di sicurezza e gli utenti sono incoraggiati ad eseguire attività amministrative di sistema usando sudo. L'utente iniziale creato dal programma di installazione di Ubuntu è già un membro del gruppo sudo, quindi se si esegue Ubuntu è probabile che l'utente a cui si è effettuato l'accesso sia già concesso con i privilegi di sudo.
Ad esempio, per consentire all'utente
linuxize
di eseguire solo il comando
mkdir
come sudo, digitare:
sudo visudo
e aggiungi la seguente riga:
linuxize ALL=/bin/mkdir
Sulla maggior parte dei sistemi, il comando
visudo
apre il
/etc/sudoers
con l'editor di testo vim. Se non hai esperienza con vim, consulta il nostro articolo su come salvare un file e chiudere l'editor vim.
Puoi anche consentire agli utenti di eseguire comandi sudo senza immettere la password:
linuxize ALL=(ALL) NOPASSWD: ALL
Come usare Sudo
La sintassi per il comando
sudo
è la seguente:
sudo OPTION.. COMMAND
Il comando
sudo
ha molte opzioni che controllano il suo comportamento, ma di solito
sudo
è usato nella sua forma più semplice, senza alcuna opzione.
Per usare sudo, basta aggiungere il comando prefisso con
sudo
:
sudo command
Dove
command
è il comando per cui si desidera utilizzare sudo.
Sudo leggerà il
/etc/sudoers
e verificherà se l'utente che ha invocato è autorizzato con sudo assess. La prima volta che usi sudo in una sessione, ti verrà chiesto di inserire la password dell'utente e il comando verrà eseguito come root.
Ad esempio, per elencare tutti i file nella directory
/root
dovresti usare:
sudo ls /root
password for linuxize:….bashrc.cache.config.local.profile
Timeout password
Per impostazione predefinita, sudo ti chiederà di inserire nuovamente la password dopo cinque minuti di inattività di sudo. È possibile modificare il timeout predefinito modificando il file
sudoers
. Apri il file con
visudo
:
sudo visudo
Imposta il timeout predefinito aggiungendo la riga seguente, dove
10
è il timeout specificato in minuti:
Defaults timestamp_timeout=10
Defaults:user_name timestamp_timeout=10
Esegui un comando come utente diverso dalla radice
C'è una percezione errata che
sudo
sia usato solo per fornire permessi di root a un utente normale. In realtà, puoi usare
sudo
per eseguire un comando come qualsiasi utente.
L'opzione
-u
consente di eseguire un comando come utente specificato.
Nel seguente esempio stiamo usando
sudo
per eseguire il comando
whoami
come utente "richard":
sudo -u richard whoami
Il comando
whoami
stamperà il nome dell'utente che esegue il comando:
Come reindirizzare con Sudo
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
Ciò accade perché il reindirizzamento "
>
" dell'output viene eseguito sotto l'utente a cui si è effettuato l'accesso, non l'utente specificato da sudo. Il reindirizzamento avviene prima che venga richiamato il comando
sudo
.
Una soluzione è invocare una nuova shell come root usando
sudo sh -c
:
sudo sh -c 'echo "test" > /root/file.txt'
Un'altra opzione è collegare l'output come utente normale al comando
tee
come mostrato di seguito:
echo "test" | sudo tee /root/file.txt
Conclusione
Hai imparato come usare il comando
sudo
e come creare nuovi utenti con privilegi sudo.
Cogli la riga di comando con il comando Take

Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Comando chmod in linux (permessi dei file)

In Linux l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Questa esercitazione illustra come utilizzare il comando chmod per modificare le autorizzazioni di accesso a file e directory.
Come eseguire il comando sudo senza password

Il comando sudo consente agli utenti fidati di eseguire programmi come un altro utente, per impostazione predefinita l'utente root. Questo tutorial spiega come configurare il file sudoers e come consentire ad alcuni utenti di eseguire i comandi sudo senza che venga chiesta la password.