Der su
Befehl steht für "substitute user" und ermöglicht es Ihnen, verschiedene Benutzer (Super-User) zu werden. sudo su
ändert den aktuellen Benutzer root aber environment settings (PATH)
würde bleiben gleich. Es ermöglicht Benutzern, die über Berechtigungen zum Ausführen eines Befehls als Superuser oder einen anderen Benutzer verfügen, wie in der Datei sudoers
angegeben.
Mit sudo -i
Sie eine saubere Root-Shell erhalten. Die Option -i (simulate initial login) führt die durch den Passwortdatenbankeintrag des Zielbenutzers angegebene Shell als Login-Shell aus. Dies bedeutet, dass Login spezifische Ressourcendateien wie .profile
oder .login
wird von der Shell gelesen werden. Wenn ein Befehl angegeben wird, wird er über die Option -c der Shell zur Ausführung an die Shell übergeben. Wenn kein Befehl angegeben ist, wird eine interaktive Shell ausgeführt.
Führen Sie 'sudo -i -u username' aus und überprüfen Sie Ihre Umgebungsvariablen, führen Sie dann 'sudo su - username' aus und überprüfen Sie Ihre Umgebungsvariablen Sie sollten einen Unterschied sehen – Mischa
wahrscheinlich könnte diese Antwort Ihnen helfen, versuche ich auch um die Antwort für die gleiche Frage zu finden. http://askubuntu.com/questions/376199/sudo-su-vs-sudo-i-vs-sudo-bin-bash-when-does-it-matter-which-is-used – Radan
Es gibt auch sehr bedeutende Konfiguration Änderungen. Wenn Sie 'sudo su' verwenden, dann ist Ihre PAM-Konfiguration für' su' zusätzlich zu Ihrer 'sudoers' Konfiguration wichtig; wenn nur 'sudo' verwenden, dann sind Sie nur auf' sudo' abhängig (und alle die Konfiguration darin enthaltenen durch Bezugnahme - seine PAM-Module, deren Konfiguration, etc.), während mit 'su' zusätzlich bedeutet, dass Sie abhängig auf * zwei * Tools mit unabhängigem Verhalten und Konfiguration (und auf dem ersteren konfiguriert sein, um Letzteres zu ermöglichen). –