L’utilità su (abbreviazione di substitute o switch user) permette di eseguire comandi con i privilegi di un altro utente, per default l’utente root.
Usare su è il modo più semplice per passare all’account amministrativo nella sessione di login corrente. Questo è particolarmente utile quando l’utente root non è autorizzato ad accedere al sistema attraverso sshor usando la GUI display manager.
In questo tutorial, spiegheremo come usare il comando su.
Come usare il comando su #
La sintassi generale per il comando su è la seguente:
su ]Quando invocato senza alcuna opzione, il comportamento predefinito di su è quello di eseguire una shell interattiva come root:
suVi verrà richiesto di inserire la password di root, e se autenticato, l’utente che esegue il comando diventa temporaneamente root.
La shell di sessione (SHELL) e le variabili d’ambiente home (HOME) vengono impostate dall’utente sostituto /etc/passwd, e la directory corrente non viene modificata.
Per confermare che l’utente è cambiato, usate il comando whoami:
whoamiIl comando stamperà il nome dell’utente che esegue la sessione di shell corrente:
rootL’opzione più comunemente usata quando si invoca su--l--login). Questo rende la shell una shell di login con un ambiente molto simile ad un vero login e cambia la directory corrente:
su -Se volete eseguire un’altra shell invece di quella definita nel file passwd, usate l’opzione -s--shell. Per esempio, per passare a root ed eseguire la shell zsh, si dovrebbe digitare:
su -s /usr/bin/zshPer conservare l’intero ambiente (HOMESHELLUSER, e LOGNAME) dell’utente chiamante, invoca il comando con l’opzione -p--preserve-environment.
su -pQuando l’opzione - viene utilizzata, -p viene ignorata.
Se volete eseguire un comando come utente sostituto senza avviare una shell interattiva, usate l’opzione -c--command. Per esempio, per invocare il comando ps come root, si dovrebbe digitare:
su -c psPer passare ad un altro account utente, passare il nome utente come argomento a su. Per esempio, per passare all’utente tyrion si dovrebbe digitare:
su tyrionSudo vs. Su #
In alcune distribuzioni Linux come Ubuntu, l’account utente root è disabilitato di default per motivi di sicurezza. Questo significa che nessuna password è impostata per root, e non è possibile utilizzare su per passare a root.
Un’opzione per passare a root sarebbe quella di anteporre il comando su con sudo e inserire la password dell’utente attualmente loggato:
sudo su -Il comando sudo permette di eseguire programmi come un altro utente, di default l’utente root.
Se l’utente è garantito con sudo valutazione, il comando su viene invocato come root. Eseguire sudo su - e poi digitare la password utente ha lo stesso effetto che eseguire su - e digitare la password di root.
Se usato con l’opzione -isudo esegue una shell di login interattiva con l’ambiente dell’utente root:
sudo -isudo -i è praticamente lo stesso che eseguire su -.
Il vantaggio di usare sudo rispetto a su è che la password di root non deve essere condivisa tra più account utente amministrativi.
Con sudo si può anche permettere agli utenti di eseguire solo programmi specifici con i privilegi di root.
Conclusione #
su è un’utilità a riga di comando che permette di diventare temporaneamente un altro utente ed eseguire comandi con l’utente sostituto.