Come hai visto, è una pratica scadente accedere al server direttamente con i privilegi di root. La pratica migliore consiste nell'accedere con un account utente standard, quindi elevare i propri privilegi a root secondo necessità. Un modo per aumentare i privilegi consiste nel "sostituire l'utente" utilizzando il comando su. Il comando su, senza un'opzione, consente a un utente di cambiare la propria identità con quella di un altro utente, ma mantiene il profilo e le variabili dell'utente originale. L'utente cambiato rimane anche nella directory home dell'utente originale. Chiunque utilizzi su, tranne l'utente root, verrà sfidato per la password dell'account utente a cui sta passando.
L'uso di su seguito da un trattino consente a un utente di cambiare utente e avviare una nuova shell nel contesto di quel nuovo utente. Questa è una pratica molto migliore. Chiunque utilizzi "su –"" eccetto l'utente root verrà sfidato per la password dell'utente a cui sta passando. È più comune passare all'utente root, ma qualsiasi utente può passare a qualsiasi altro utente purché conosca la password dell'utente.
La sintassi del comando su è:
$ su [-] [user name]Nota :Senza un argomento del nome utente, il comando "su -" presumerà che tu intenda accedere come root.
Se riscontri un errore di seguito durante l'esecuzione del comando su:
su: command not found
puoi provare a installare il pacchetto util-linux come mostrato di seguito in base alla tua scelta di distribuzione.
Distribuzione | Comando |
---|---|
OS X | brew install util-linux |
Debian | apt-get install util-linux |
Ubuntu | apt-get install util-linux |
Alpino | apk add util-linux |
Arch Linux | pacman -S util-linux |
Kali Linux | apt-get install util-linux |
CentOS | yum install util-linux |
Fedora | dnf install util-linux |
Raspbian | apt-get install login |
Esempi di comando su
1. Passa a superutente (richiede la password di root):
$ su
2. Passa a un determinato utente (richiede la password dell'utente):
$ su username
3. Passa a un determinato utente e simula una shell di accesso completa:
$ su - username
4. Esegui un comando come un altro utente:
$ su - username -c "command"
Nota
Un'opzione è consentita durante l'esecuzione del comando su:l'opzione –. Quando esegui il comando su con l'opzione –, verrà fornita una nuova shell di accesso. Quando non si utilizza il carattere –, verrà fornita una shell non di accesso.