Ho visto molti commenti qui in Chiedi a Ubuntu riguardo alle preferenze nell'uso sudo -s
piuttosto che sudo su
.
Per me, quei due comandi fanno esattamente lo stesso. Ma perché sudo -s
dovrebbe essere migliore?
Ho visto molti commenti qui in Chiedi a Ubuntu riguardo alle preferenze nell'uso sudo -s
piuttosto che sudo su
.
Per me, quei due comandi fanno esattamente lo stesso. Ma perché sudo -s
dovrebbe essere migliore?
Risposte:
Penso che sudo -s
non sia "migliore", è solo diverso.
sudo -s
mantiene la tua directory $ HOME, quindi quando avvii i programmi, useranno i tuoi file di configurazione (e non quelli di root) ecc. Svantaggio: possono anche cambiare la proprietà dei tuoi file nella directory $ HOME, tipico esempio è il .Xauthority
file, ma io non ho mai avuto problemi con questo.
sudo su
o sudo -i
i programmi useranno la home directory del root e i suoi file di configurazione. Questo potrebbe essere più intuitivo, ma significa anche che non utilizzerà alcuna configurazione che potresti aver impostato (alias, cronologia di bash, ...).
Perché sudo -s
non cambierà le variabili di ambiente, in particolare $HOME
, che rimarrà HOME=/home/USER
. Se lo usi sudo su
, cambierà in HOME=/root
quale può avere effetti collaterali negativi quando programmi che avvii, prova ad accedere alla home directory del tuo utente.
Quindi in pratica è come sudo
vs gksudo
quando si eseguono programmi grafici.
A parte le differenze già menzionate con le variabili di ambiente, trovo sudo su
sciocco e dispendioso perché stai chiedendo sudo
di eseguire su
come root e gli chiedo di eseguire una shell come root. Perché chiedere a un programma di chiedere a un programma di darti una shell di root, quando puoi avere solo il primo programma che ti dà quella shell? Importa in qualche senso pratico? No, sono solo pedante.
sudo su
come root, sì, vai sudo -i
, per esempio. Ma aiuta quando si vuole diventare un altro utente: sudo su - myuser
.
sudo -i
cambierà in /root
directory e sudo su
rimarrà nella directory in cui ti trovi.
sudo -u myuser
.
Non sarei d'accordo con altre risposte quando si considerano i casi in cui si desidera accedere come utente che non ha una shell. Questo è un caso molto comune con gli utenti assegnati ai servizi.
L'uso di "sudo su" avvierà la shell specificata dall'utente. Tuttavia, nel caso di un utente assegnato al processo del server, la shell è / usr / bin / false e la registrazione non riuscirà. Invece dovresti inserire come:
sudo -sHu <server-user>
che accederà e effettuerà il cd nel suo percorso principale, anche se l'utente non ha una shell assegnata
sudo -i
osudo su
è meglio chesudo -s
per i motivi menzionati qui: ubuntuforums.org/showpost.php?p=6188826&postcount=4 Inoltre: questo è un possibile duplicato di superuser.com/questions/29/…