Introduzione
Sudo sta per SuperUser DO e viene utilizzato per accedere a file e operazioni con restrizioni. Per impostazione predefinita, Linux limita l'accesso ad alcune parti del sistema impedendo che i file sensibili vengano compromessi.
Il sudo
comando eleva temporaneamente i privilegi consentendo agli utenti di completare attività riservate senza accedere come utente root. In questo tutorial, scopri come utilizzare il comando sudo in Linux con esempi.
Prerequisiti
- Un sistema che esegue Linux
- Accesso a una riga di comando/finestra del terminale (Attività> Ricerca> Terminale)
- Un account utente con
sudo
oroot
privilegi
Come usare il comando sudo
sudo
è stato sviluppato come un modo per concedere temporaneamente a un utente diritti amministrativi. Per farlo funzionare, usa sudo
prima di un comando ristretto. Il sistema richiederà la tua password. Una volta fornito, il sistema esegue il comando.
Sintassi
Per iniziare a utilizzare sudo
, usa la seguente sintassi:
sudo [command]
Quando il sudo
viene utilizzato il comando, viene inserito un timestamp nei registri di sistema. L'utente può eseguire comandi con privilegi elevati per un breve periodo (predefinito 15 minuti). Se un utente non sudo tenta di utilizzare il sudo
comando, viene registrato come evento di sicurezza.
Opzioni
sudo
può essere utilizzato con opzioni aggiuntive:
-h
- aiuto; visualizza la sintassi e le opzioni dei comandi-V
– versione; mostra la versione corrente dell'applicazione sudo-v
– convalidare; aggiorna il limite di tempo su sudo senza eseguire un comando-l
- elenco; elenca i privilegi dell'utente o controlla un comando specifico-k
- uccisione; termina gli attuali privilegi sudo
Ulteriori opzioni possono essere trovate sotto il -h
opzione.
Concessione dei privilegi sudo
Per la maggior parte delle moderne distribuzioni Linux, un utente deve trovarsi in sudo , sudoers, o ruota gruppo per utilizzare il sudo
comando. Per impostazione predefinita, un sistema a utente singolo concede i privilegi sudo al proprio utente. Un sistema o un server con più account utente può escludere alcuni utenti dai privilegi sudo.
Si consiglia di concedere solo i privilegi assolutamente necessari all'esecuzione delle attività quotidiane dell'utente.
Le sezioni seguenti spiegano come aggiungere un utente al gruppo sudoers.
RedHat e CentOS
In Redhat/CentOS, la ruota controlli di gruppo sudo utenti. Aggiungi un utente al gruppo di ruote con il seguente comando:
usermod -aG wheel [username]
Sostituisci [username]
con un vero nome utente. Potrebbe essere necessario accedere come amministratore o utilizzare il su
comando.
Debian e Ubuntu
In Debian/Ubuntu, il sudo il gruppo controlla gli utenti sudo. Aggiungi un utente al gruppo sudo con il seguente comando:
usermod -aG sudo [username]
Sostituisci [username]
con un vero nome utente. Potrebbe essere necessario accedere come amministratore o utilizzare il su
comando.
Utilizzo di visudo e del gruppo sudoers
In alcune versioni moderne di Linux, gli utenti vengono aggiunti ai sudoers file per concedere i privilegi. Questo viene fatto usando il visudo
comando.
1. Usa il visudo
comando per modificare il file di configurazione:
sudo visudo
2. Si aprirà /etc/sudoers per la modifica. Per aggiungere un utente e concedere privilegi sudo completi , aggiungi la seguente riga:
[username] ALL=(ALL:ALL) ALL
3. Salva ed esci dal file.
Ecco una ripartizione dei privilegi sudo concessi:
[username] [any-hostname]=([run-as-username]:[run-as-groupname]) [commands-allowed]
Esempi di sudo in Linux
Utilizzo di base del sudo
1. Apri una finestra di terminale e prova il seguente comando:
apt-get update
2. Dovresti vedere un messaggio di errore. Non hai le autorizzazioni necessarie per eseguire il comando.
3. Prova lo stesso comando con sudo
:
sudo apt-get update
4. Digitare la password quando richiesto. Il sistema esegue il comando e aggiorna i repository.
Esegui comando come utente diverso
1. Per eseguire un comando come un utente diverso, nel terminale, immettere il seguente comando:
whoami
2. Il sistema dovrebbe visualizzare il tuo nome utente. Quindi, esegui il seguente comando:
sudo -u [different_username] whoami
3. Inserisci la password per [different_username]
e il whoami
il comando verrà eseguito e visualizzerà il diverso utente.
Passa all'utente root
Questo comando cambia il tuo prompt dei comandi nella shell BASH come utente root:
sudo bash
La tua riga di comando dovrebbe cambiare in:
[email protected]:/home/[username]
Il hostname
value sarà il nome di rete di questo sistema. Il username
sarà il nome utente di accesso corrente.
Esegui comandi precedenti con sudo
La riga di comando di Linux conserva un registro dei comandi eseguiti in precedenza. È possibile accedere a questi record premendo la freccia su. Per ripetere l'ultimo comando con privilegi elevati, utilizzare:
sudo !!
Funziona anche con i comandi precedenti. Specificare il numero storico come segue:
sudo !6
Questo esempio ripete la sesta voce della cronologia con il sudo
comando.
Esegui più comandi in una riga
Stringi più comandi insieme, separati da un punto e virgola:
sudo ls; whoami; hostname
Aggiungi una stringa di testo a un file esistente
L'aggiunta di una stringa di testo a un file viene spesso utilizzata per aggiungere il nome di un repository software al file di origine, senza aprire il file per la modifica. Usa la seguente sintassi con il comando echo, sudo e tee:
echo ‘string-of-text’ | sudo tee -a [path_to_file]
Ad esempio:
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list