Qual è la differenza tra Sudo e Su in Linux?
Se sei un utente Linux, probabilmente hai visto riferimenti a sudo e su. Gli articoli qui su How-To Geek e altrove indicano agli utenti di Ubuntu di usare sudo e gli altri utenti delle distribuzioni Linux per usare su, ma qual è la differenza?
Sudo e su sono due modi diversi per ottenere i privilegi di root. Ciascuna funzione in un modo diverso e diverse distribuzioni Linux utilizzano diverse configurazioni per impostazione predefinita.
L'utente root
Su e sudo sono usati per eseguire comandi con permessi di root. L'utente root è fondamentalmente equivalente all'utente amministratore su Windows: l'utente root ha le autorizzazioni massime e può fare qualsiasi cosa sul sistema. Gli utenti normali su Linux eseguono con autorizzazioni ridotte, ad esempio non possono installare software o scrivere nelle directory di sistema.
Per fare qualcosa che richiede queste autorizzazioni, dovrai acquisirli 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 ciò che fa il comando su, però - puoi usarlo per passare a qualsiasi account utente. Se esegui il su bob comando, ti verrà richiesto di inserire la password di Bob e la shell passerà all'account utente di Bob.
Una volta terminato di eseguire i comandi nella shell di root, è necessario digitare Uscita lasciare la shell di root e tornare alla modalità con privilegi limitati.
Sudo esegue un singolo comando con privilegi di root. Quando esegui comando sudo, il sistema richiede la password dell'account utente corrente prima dell'esecuzione comando come utente root. Di default, Ubuntu ricorda la password per quindici minuti e non chiederà più una password fino a quindici minuti.
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 privilegi di root - non passa all'utente root o 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 diffusa ad andare sudo-only per impostazione predefinita. Quando installi Ubuntu, viene creato l'account root standard, ma non viene assegnata alcuna password. Non è possibile accedere come root finché non si assegna una password all'account root.
Ci sono diversi 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 di account utente e radice separate durante l'installazione.
Un altro vantaggio è che scoraggia gli utenti dal login come utente root - o usando su per ottenere una shell di root - e mantenendo la shell di root aperta per fare il loro normale lavoro. L'esecuzione di un numero inferiore 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 seguente comando:
su -c 'comando'
Questo è simile all'esecuzione di un comando con sudo, ma avrete bisogno della password dell'account di root invece della password dell'account utente corrente.
Per ottenere una shell radice interattiva completa con sudo, esegui sudo -i.
Dovrai fornire la password del tuo account utente corrente invece della password dell'account di root.
Abilitazione dell'utente root in Ubuntu
Per abilitare l'account utente root su Ubuntu, utilizzare il seguente comando per impostarne una password. Tenete a mente che Ubuntu raccomanda contro questo.
sudo passwd root
Sudo ti chiederà la password del tuo account utente corrente prima di poter impostare una nuova password. Usa la tua nuova password per accedere come root da un prompt di login del terminale o con il comando su. Non si dovrebbe mai eseguire un ambiente grafico completo come utente root: si tratta di una pratica di sicurezza molto scarsa e molti programmi si rifiuteranno di funzionare.
Aggiunta di utenti al file Sudoers
Solo gli account di tipo amministratore in Ubuntu possono eseguire comandi con sudo. È possibile modificare il tipo di un account utente dalla finestra di configurazione Account utente.
Ubuntu indica automaticamente l'account utente creato durante l'installazione come account amministratore.
Se stai usando un'altra distribuzione Linux, puoi concedere a un utente il permesso di usare sudo eseguendo il visudo comando con privilegi di root (quindi eseguire su prima o usa su -c).
Aggiungi la seguente riga al file, sostituendo utente con il nome dell'account utente:
utente ALL = (TUTTI: TUTTI) TUTTI
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 privilegi sudo.
Versioni grafiche di Su
Linux supporta anche le versioni grafiche di su, che richiedono la password in un ambiente grafico. Ad esempio, è possibile eseguire il seguente comando per ottenere una richiesta di password grafica ed eseguire il navigatore di file Nautilus con i permessi di root. stampa Alt-F2 per eseguire il comando da una finestra di dialogo di esecuzione grafica senza avviare un terminale.
gksu nautilus
Il comando gksu ha anche qualche altro asso nella manica: conserva le attuali impostazioni del desktop, quindi i programmi grafici non sembreranno fuori posto quando li lanciate come utenti diversi. Programmi come gksu sono il modo preferito di avviare applicazioni grafiche con privilegi di root.
Gksu usa un backend su su o sudo, a seconda della distribuzione Linux che stai usando.
Ora dovresti essere pronto ad incontrare sia su che sudo! Incontrerai entrambi se usi diverse distribuzioni Linux.