Qual è la differenza tra Sudo e Su in Linux?

 immagine

Se sei un utente Linux, probabilmente hai visto riferimenti sia a sudo che a su. Gli articoli qui su How-To Geek e altrove istruiscono gli utenti Ubuntu di utilizzare sudo e gli altri utenti di distribuzioni Linux per usare su, ma qual è la differenza?

Sudo e su sono due modi diversi per ottenere i privilegi di root. Ciascuno funziona in modo diverso e le diverse distribuzioni Linux utilizzano configurazioni diverse per impostazione predefinita.

L'utente root

Sia su che sudo sono usati per eseguire comandi con permessi di root. L'utente root è sostanzialmente equivalente all'utente amministratore su Windows: l'utente root dispone delle autorizzazioni massime e può fare qualsiasi cosa al sistema. Gli utenti normali su Linux funzionano con autorizzazioni ridotte, ad esempio non possono installare software o scrivere nelle directory di sistema.

Per fare qualcosa che richiede queste autorizzazioni, devi acquisirle con su o sudo.

Su vs. Sudo

Il comando su passa al superutente – o utente root – quando lo si esegue senza opzioni aggiuntive. Dovrai inserire la password dell'account di root. Questo non è tutto il comando su, però: puoi usarlo per passare a qualsiasi account utente. Se si esegue il su bob comando, ti verrà richiesto di inserire la password di Bob e la shell passerà all'account utente di Bob.

Dopo aver eseguito i comandi nella shell principale, è necessario digitare Uscita per uscire dalla shell di root e tornare alla modalità privilegi limitati.

Sudo esegue un singolo comando con i privilegi di root. Quando esegui comando sudo, il sistema richiede la password del tuo account utente corrente prima di eseguire comando come utente root. Per impostazione predefinita, Ubuntu ricorda la password per quindici minuti e non chiederà di nuovo una password fino al termine dei quindici minuti.

 immagine

Questa è una differenza chiave tra su e sudo. Su passa all'account utente root e richiede la password dell'account root. Sudo esegue un singolo comando con i privilegi di root: non passa all'utente root o non richiede una password utente root separata.

Ubuntu vs altre distribuzioni Linux

Il comando su è il modo tradizionale di acquisire i permessi di root su Linux. Il comando sudo esiste da molto tempo, ma Ubuntu è stata la prima distribuzione Linux popolare ad essere impostata su sudo solo per impostazione predefinita. Quando si installa Ubuntu, viene creato l'account root standard, ma non viene assegnata alcuna password. Non è possibile accedere come root fino a quando non si assegna una password all'account root.

 immagine

Ci sono molti vantaggi nell'usare sudo invece di su di default. Gli utenti di Ubuntu devono solo fornire e ricordare una singola password, mentre Fedora e altre distribuzioni richiedono di creare password separate per l'account utente e root durante l'installazione.

Un altro vantaggio è che scoraggia gli utenti dal fare il login come utente root – o usando su per ottenere una shell root – e mantenere aperta la shell root per fare il loro normale lavoro. L'esecuzione di un minor numero di comandi come root aumenta la sicurezza e impedisce modifiche accidentali a livello di sistema.

Le distribuzioni basate su Ubuntu, incluso Linux Mint, usano anche sudo invece di su per impostazione predefinita.

Alcuni trucchi

Linux è flessibile, quindi non ci vuole molto lavoro per far funzionare su su in modo simile a sudo – o viceversa.

Per eseguire un singolo comando come utente root con su, eseguire il comando seguente:

su -c “comando”

Questo è simile all'esecuzione di un comando con sudo, ma avrai bisogno della password dell'account root anziché della password del tuo account utente corrente.

Per ottenere una shell root completa e interattiva con sudo, esegui sudo –i.

 image

Dovrai fornire la password del tuo account utente corrente anziché la password dell'account root.

Abilitazione dell'utente root in Ubuntu

Per abilitare l'account utente root su Ubuntu, utilizzare il comando seguente per impostare una password per esso. Ricorda che Ubuntu raccomanda di non farlo.

sudo passwd root

Sudo ti chiederà la password del tuo account utente corrente prima di poter impostare una nuova password. Utilizzare la nuova password per accedere come root dal prompt di accesso del terminale o con il comando su. Non dovresti mai eseguire un ambiente grafico completo come utente root: questa è una pratica di sicurezza molto scadente e molti programmi si rifiuteranno di funzionare.

 image

Aggiunta di utenti al file Sudoers

Solo gli account di tipo amministratore in Ubuntu possono eseguire comandi con sudo. Puoi modificare il tipo di un account utente dalla finestra di configurazione Account utente.

 image

Ubuntu designa automaticamente l'account utente creato durante l'installazione come account amministratore.

 image

Se stai utilizzando un'altra distribuzione Linux, puoi concedere a un utente l'autorizzazione per utilizzare sudo eseguendo il comando visudo comando con privilegi di root (quindi esegui su prima o usare su -c).

Aggiungi la seguente riga al file, sostituendo utente con il nome dell'account utente:

utente ALL = (ALL: ALL) ALL

stampa Ctrl-X e poi Y per salvare il file. Potresti anche essere in grado di aggiungere un utente a un gruppo specificato nel file. Gli utenti nei gruppi specificati nel file avranno automaticamente i privilegi di sudo.

 immagine

Versioni grafiche di Su

Linux supporta anche le versioni grafiche di su, che richiedono la tua password in un ambiente grafico. Ad esempio, è possibile eseguire il comando seguente per ottenere una richiesta di password grafica ed eseguire il browser di file Nautilus con autorizzazioni di root. stampa Alt-F2 per eseguire il comando da una finestra di dialogo di esecuzione grafica senza avviare un terminale.

gksu nautilus

 immagine

Il comando gksu ha anche qualche altro asso nella manica: mantiene le impostazioni del desktop correnti, quindi i programmi grafici non appariranno fuori posto quando li lanci come un altro utente. Programmi come gksu sono il modo preferito di avviare applicazioni grafiche con privilegi di root.

Gksu usa un backend basato su o sudo, a seconda della distribuzione Linux che stai utilizzando.


Ora dovresti essere pronto a incontrare sia su che sudo! Incontrerai entrambi se utilizzi diverse distribuzioni Linux.

Articoli correlati

Ultimi articoli