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:
su
Vi 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
:
whoami
Il comando stamperà il nome dell’utente che esegue la sessione di shell corrente:
root
L’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/zsh
Per conservare l’intero ambiente (HOME
SHELL
USER
, e LOGNAME
) dell’utente chiamante, invoca il comando con l’opzione -p
--preserve-environment
.
su -p
Quando 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 ps
Per 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 tyrion
Sudo 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 -i
sudo
esegue una shell di login interattiva con l’ambiente dell’utente root:
sudo -i
sudo -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.