it-swarm.com.de

Was ist der Unterschied zwischen "su" mit und ohne Bindestrich?

Ich bin ein Neuling im Linux-Terminal und weiß nicht genau, was der Unterschied zwischen su mit Bindestrich und su ohne Bindestrich ist, zum Beispiel: su - username vs. su username.

Ich habe in die Dokumentation geschaut , aber dort wurde dies nicht erwähnt. Könnte mir bitte jemand helfen?

85
user574183

Der Unterschied zwischen "-" und "kein Bindestrich" besteht darin, dass letzterer Ihre vorhandene Umgebung (Variablen usw.) beibehält ; Ersteres erstellt eine neue Umgebung (mit den Einstellungen des tatsächlichen Benutzers, nicht Ihrer eigenen).

https://wiki.archlinux.org/index.php/Su

Der Bindestrich hat zwei Auswirkungen:

1) wechselt vom aktuellen Verzeichnis zum Ausgangsverzeichnis des neuen Benutzers (z. B. zu/root im Fall des Root-Benutzers), indem er sich als dieser Benutzer anmeldet

2) Ändert die Umgebungsvariablen in die des neuen Benutzers, wie durch dessen ~/.bashrc vorgegeben. Das heißt, wenn das erste Argument für su ein Bindestrich ist, werden das aktuelle Verzeichnis und die aktuelle Umgebung so geändert, wie es zu erwarten wäre, wenn sich der neue Benutzer tatsächlich bei einer neuen Sitzung angemeldet hätte (anstatt nur eine vorhandene Sitzung zu übernehmen).

81
paulsm4

su - startet eine Login-Shell für root. Informationen zu den Unterschieden zu einer normalen Shell finden Sie beispielsweise auf dieser Site .

3
Lars Kotthoff