Ich habe hier in Ask Ubuntu viele Kommentare zur Bevorzugung der Verwendung von sudo -s
statt gesehen sudo su
.
Für mich machen diese beiden Befehle genau dasselbe. Aber warum sudo -s
soll es besser sein?
command-line
sudo
su
fitojb
quelle
quelle
sudo -i
odersudo su
besser ist alssudo -s
aus Gründen erwähnt hier: ubuntuforums.org/showpost.php?p=6188826&postcount=4 auch: dies ist eine mögliche Duplikat superuser.com/questions/29/...Antworten:
Ich finde
sudo -s
es nicht "besser", es ist einfach anders.sudo -s
behält Ihr $ HOME-Verzeichnis bei, wenn Sie also Programme starten, werden Ihre Konfigurationsdateien (und nicht die von root) usw. verwendet. Nachteil: Sie können auch den Besitz Ihrer Dateien im $ HOME-Verzeichnis ändern. Ein typisches Beispiel ist die
.Xauthority
Datei, aber ich habe noch nie ein Problem damit erlebt.sudo su
odersudo -i
Programme verwenden das Stammverzeichnis und die Konfigurationsdateien des Stammverzeichnisses. Dies mag intuitiver sein, bedeutet aber auch, dass keine Konfiguration verwendet wird, die Sie für sich selbst festgelegt haben (Aliase, Bash-Verlauf, ...).
quelle
Denn
sudo -s
Ihre Umgebungsvariablen werden sich nicht ändern, vor allem$HOME
, was bleiben wirdHOME=/home/USER
. Wenn Siesudo su
dies verwenden,HOME=/root
kann dies negative Nebenwirkungen haben, wenn Programme, die Sie starten, versuchen, auf das Home-Verzeichnis Ihres Benutzers zuzugreifen.Also im Grunde ist es wie
sudo
vsgksudo
wenn grafische Programme ausgeführt werden .quelle
Abgesehen von den bereits erwähnten Unterschieden zu Umgebungsvariablen finde ich das
sudo su
albern und verschwenderisch, weil Sie darum bittensudo
,su
als root ausgeführt zu werden und eine Shell als root auszuführen. Warum ein Programm bitten, ein Programm zu bitten, Ihnen eine Root-Shell zu geben, wenn Sie nur das erste Programm haben können, das Ihnen diese Shell gibt? Ist das praktisch von Bedeutung? Nein, ich bin nur pedantisch.quelle
sudo su
root sind, gehen Sie einfachsudo -i
zum Beispiel. Aber es hilft , wenn Sie einen anderen Benutzer werden wollen:sudo su - myuser
.sudo -i
Wechselt in das/root
Verzeichnis undsudo su
bleibt in dem Verzeichnis, in dem Sie sich befinden.sudo -u myuser
.Ich würde anderen Antworten nicht zustimmen, wenn ich die Fälle betrachte, in denen Sie sich als Benutzer ohne Shell anmelden möchten. Dies ist ein sehr häufiger Fall bei Benutzern, die Diensten zugewiesen sind.
Mit "sudo su" wird die vom Benutzer angegebene Shell gestartet. Im Fall eines Benutzers, der dem Serverprozess zugewiesen ist, lautet die Shell / usr / bin / false, und die Protokollierung schlägt fehl. Stattdessen sollten Sie eingeben als:
Dadurch werden Sie angemeldet und in den Home-Pfad aufgenommen, auch wenn dem Benutzer keine Shell zugewiesen ist
quelle