Was ist der Unterschied zwischen sudo su - und sudo su -

22

Wenn ich an unseren RHEL-Maschinen arbeite, wechsle ich sudo su -zu root. Eines Tages bedeutete ein Tippfehler, dass ich sudo su --stattdessen tippte - es scheint mir, dass alles das gleiche war wie mit einem einzelnen Bindestrich, außer dass ich mich in demselben Ordner befand, in dem ich mich befand, als ich den Befehl ausgab (mit einem einzelnen Bindestrich, in dem ich mich befand /root).

Gibt es noch andere Unterschiede? Ist es sicher, dies in Szenarien zu verwenden, in denen ich weiß, dass ich im selben Verzeichnis arbeiten möchte?

Reich
quelle

Antworten:

22

Wenn Sie einen doppelten Bindestrich eingeben, ist die Erfahrung identisch mit derjenigen, die Sie gerade sudo suohne Bindestrich ausgeführt haben.

Das Übergeben eines einzelnen Bindestrichs ist identisch mit dem Übergeben von -loder --login. Die Manpage für subeschreibt das Verhalten wie folgt:

Stellen Sie eine Umgebung bereit, die der vom Benutzer erwarteten Umgebung ähnelt, in der sich der Benutzer direkt angemeldet hat.

Dies umfasst das Festlegen Ihres Verzeichnisses in Ihrem Ausgangsverzeichnis und das Festlegen einer Reihe anderer Umgebungsvariablen.

Das Übergeben eines doppelten Bindestrichs an einen Befehl wird normalerweise verwendet, um das Ende von Befehlszeilenflags und den Beginn von Nicht-Flag-Argumenten zu markieren. Wenn Sie beispielsweise ausführen touch -R, wird die Fehlermeldung angezeigt, dass -R keine Option für touchist. Wenn Sie jedoch ausführen touch -- -R, wird eine Datei mit dem Namen erstellt -R. Dies gilt für viele Befehlszeilentools ( ls -Rführt eine rekursive Operation aus, lswährend ls -- -Reine Operation lsfür eine Datei oder ein Verzeichnis mit dem Namen ausgeführt wird -R.

So wickeln diese nach oben, wenn Sie passieren nur -- auf susie im Grunde das ignoriert wird --und handeln wie Sie keine Option überhaupt nicht bestanden hat.

Mark Drago
quelle
Ich werde daraus aber eine Frage erstellen sudo su -und die sudo su -lunterscheidet sich. Auf einem Konto, in das ich nur mit einem Schlüssel einchecke und Sudo-Rechte habe, um zu einem bestimmten anderen Benutzer zu wechseln, sudo su -wechselt der Benutzer ohne Probleme, sudo su -loder er sudo su --loginfragt nach einem Sudo-Passwort, das ich nicht habe (obwohl sudo -lich es überprüfe) konnte /bin/sumit NOPASSWD ausführen )
Karatedog
@ Karatedog, es sieht aus wie Sie keine Frage erstellt haben ....
Wildcard