Ich benutze Ubuntu 10.04.
Ich stelle fest, dass sich die Eingabeaufforderung nach dem Ausführen von " sudo -s " im Terminal von geändert hat
" XXX @ XXX "
zu
" root @ XXX ",
Es scheint, als hätte es sich in ein Root-Privileg verwandelt.
Aber wenn ich die Dokumentation des Befehls "sudo" hier überprüfe , wird eine andere Geschichte von "sudo -s" erklärt. Kann mir jemand erklären, was " sudo -s " genau tut?
sudo
ist kaum Ubuntu-spezifisch ...Antworten:
Die beiden sind nicht wirklich inkonsistent - der
sudo
Befehl wechselt immer den Benutzer entweder zu root oder zu dem Benutzer, den Sie mit dem-u
Schalter angeben . Sie-s
müssen lediglich eine Verknüpfung zum Starten einer Shell als dieser Benutzer bereitstellen. Es ist wirklich gleichbedeutend mit:außer dass es wahrscheinlich auf
/bin/sh
oder etwas zurückgreifen wird, wennSHELL
es nicht gesetzt ist.quelle
sudo -s
Führt die in Ihrer$SHELL
Umgebungsvariablen angegebene Shell als Superuser / Root aus. Sie können einen anderen Benutzer mit angeben-u
.Die
$SHELL
Umgebungsvariable enthält den Pfad zur Standardanmeldeshell des Benutzers. Die tatsächliche Einstellung für das Standard-Shell-Programm ist normalerweise inetc/passwd
. Je nachdem, was Sie in Ihrer aktuellen Sitzung getan haben, enthält die Variable $ SHELL möglicherweise nicht das Shell-Programm, das Sie gerade verwenden. Wenn Sie sich beispielsweise automatisch mit zsh anmelden, dann aber bash aufrufen, ändert sich von $ SHELL nichts/bin/zsh
.Zeigt das aktuelle Benutzer- und Shell-Programm an:
echo $(whoami) is logged in and shell is $0
whoami
druckt den Benutzernamen aus, unter dem der Benutzer arbeitet.$0
enthält den Namen / Pfad des aktuell laufenden Programms (in diesem Fall Shell-Programm).quelle
Aus dem Handbuch:
Im Ernst, die sudo -s führen eine Shell-Umgebungsvariable aus. Da Sie keine Variable hinzugefügt haben, wird sie wie in passwd angegeben ausgeführt und verbindet Sie als Root.
quelle
-u
Option lesen, um das zu lernen. Aber für jemanden, der sich nicht auskenntsudo
, würde er es nicht zu schätzen wissen-u
.Schauen Sie sich diesen Beitrag von Superuser an:
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
Übrigens, dein Beitrag sollte in den Superuser verschoben werden (oder wie in den Kommentaren erwähnt in askubuntu)!
quelle
Es hört sich so an, als würde eine weitere Instanz der Shell über der aktuellen Shell erstellt, jedoch mit Root-Rechten. Ich wette, nachdem Sie
sudo -s
exit eingegeben haben, kehren Sie zur ursprünglichen Shell zurück.quelle
Mit sudo -s können Sie einen Befehl ausführen, für den Sie eine Vorautorisierung haben [siehe / etc / sudoers]. Möglicherweise müssen Sie Ihre aktuelle ID bestätigen.
quelle