![Unterschied zwischen Sudo-Anmeldungen und Eingabeaufforderungsanzeige](https://rvso.com/image/1555402/Unterschied%20zwischen%20Sudo-Anmeldungen%20und%20Eingabeaufforderungsanzeige.png)
Was ist der Unterschied zwischen sudo -s
und sudo -i
und warum geben sie mir unterschiedliche Schalen? Es scheint, -s
hält mich drinnen bash
und -i
gibt mir sh
.
Wenn ich unter MacOSX High Sierra 10.13 sudo -s
in ein Terminal tippe und mein Passwort eingebe, erhalte ich als Benutzernamen „root“, allerdings mit einem Dollarzeichen an der Eingabeaufforderung:
user1@mymachine:~$ sudo -s
**root@mymachine:~$**
Wenn ich jedoch eingebe sudo -i
, erhalte ich:
user1@mymachine:~$ sudo -i
Password:<br/>
**mymachine:~ root#**
Warum wird mir das Rautezeichen # nicht angezeigt, wenn ich im obigen Beispiel mit root bin sudo -s
? Bin ich nicht wirklich root?
Sind die Umgebungsvariablen bei beiden unterschiedlich?
Antwort1
Als Erstes müssen Sie sich darüber im Klaren sein, dass dies sudo -s
gleichwertig ist mit sudo -s root
und sudo -i
gleichwertig ist mit sudo -i root
. Wenn Sie einen Benutzer in sudo auslassen, wird davon ausgegangen, dass Sie den Benutzer root als Ziel haben.
sudo -s
führt eine Shell als Zielbenutzer aus, während er sudo -i
sich als Zielbenutzer anmeldet.
Wenn Sie ausführen, sudo -s
ändern Sie Ihre Shell effektiv in die Root-Benutzer-Shell, während sudo -i
Sie sich bei jeder Ausführung effektiv von Ihrem aktuellen Benutzer abmelden und als Root anmelden. Dies ist wichtig zu wissen, da Sie beim Ändern Ihrer Shell in die Root-Benutzer-Shell immer noch Ihre Benutzerexportinformationen behalten. Wenn Sie ausführen, sudo -i
melden Sie sich von Ihrem Benutzer ab und melden sich als Root an. Das bedeutet, dass Sie die Shell-Konfiguration des Root-Benutzers übernehmen.
Dies hat nichts damit zu tun, aber Sie sollten es vermeiden, Ihren Benutzer auf Root umzustellen, da Sie sonst versehentlich Dinge beschädigen könnten. Sie sollten einfach jeden Befehl, der eskaliert werden muss, mit sudo ausführen, auch wenn es lästig wird. Wenn Sie wirklich zu einer Root-Shell wechseln möchten, sollten Sie ausführen, su
wodurch Sie sich als Root anmelden können.