Introduzione
L'utility su
(substitute o switch user) consente di eseguire comandi con i privilegi di un altro utente, per impostazione predefinita l'utente root.
L'utilizzo di su
è il modo più semplice per passare all'account amministrativo nella sessione di accesso corrente. Ciò è particolarmente utile quando l'utente root non è autorizzato ad accedere al sistema tramite ssh o utilizzando il display manager della GUI.
In questo tutorial, spiegheremo come usare il comando su
.
Come usare il comando su
La sintassi generale per il comando su
è la seguente:
su [OPTIONS] [USER [ARGUMENT...]]
Se richiamato senza alcuna opzione, il comportamento predefinito di su
è eseguire una shell interattiva come root:
su
Ti verrà richiesto di inserire la password di root e, se autenticato, l'utente che esegue il comando diventa temporaneamente root.
Per confermare che l'utente è cambiato, utilizzare 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 richiama su
è -
, -l
, --login
. Questo rende la shell, una shell di login con un ambiente molto simile a un login reale e cambia la directory corrente:
su -
Se si desidera eseguire un'altra shell anziché quella definita nel file passwd
, utilizzare l'opzione -s
, --shell
. Ad esempio, per passare a root ed eseguire la shell zsh
digitare:
su -s /usr/bin/zsh
Per preservare l'intero ambiente (HOME
, SHELL
, USER
e LOGNAME
) dell'utente in uso, utilizzare l'opzione -p
, --preserve-environment
.
su -p
Quando viene utilizzata l'opzione -
, l'opzione -p
viene ignorata.
Se si desidera eseguire un comando come utente sostitutivo senza avviare una shell interattiva, utilizzare l'opzione -c
, --command
. Ad esempio, per invocare ilcomando ps
come root, digitare:
su -c ps
Per passare a un altro account utente, passare il nome utente come argomento a su
. Ad esempio, per passare all'utente noviello
digitare:
su noviello
Sudo vs Su
Su alcune distribuzioni Linux come Ubuntu, l'account utente root è disabilitato per impostazione predefinita per motivi di sicurezza. Ciò significa che non è impostata alcuna password per root e non è possibile utilizzare su
per passare a root.
Un'opzione per passare a root sarebbe quella di anteporre sudo
al comando su
e inserire la password dell'utente attualmente connesso:
sudo su -
Il comando sudo
consente di eseguire programmi come un altro utente, per impostazione predefinita l'utente root.
Se si antepone sudo
, il comando su
verrà richiamato come root. L'esecuzione sudo su -
e l'utilizzo della password utente sono gli stessi dell'esecuzione su -
con la password di root.
Se utilizzato con l'opzione -i
, sudo
esegue una shell di accesso interattiva con l'ambiente dell'utente root:
sudo -i
sudo -i
è praticamente lo stesso di su -
.
Il vantaggio dell'utilizzo di sudo
rispetto a su
è che la password di root non deve essere condivisa tra più account utente amministrativi.
Inoltre, con sudo
puoi consentire agli utenti di eseguire solo programmi specifici con privilegi di root.
Conclusione
su
è un utility della riga di comando che ti consente di diventare temporaneamente un altro utente ed eseguire comandi con l'utente sostitutivo.