Ich habe versucht, die Login-Shell zu ändern.
So /etc/passwdsieht die erste Zeile aus (bei einer Debian Wheezy-Installation):
rootx:0:0:root:/root:/:zsh
Wenn ich versuche mich anzumelden als root:
Cannot execute zsh: No such file or directory
Ich weiß, zshist verfügbar:
$ which zsh
/usr/bin/zsh
Okay, es scheint logisch, zshdurch seinen vollständigen Pfad zu ersetzen . Aber wie kann ich das machen?
Ich habe einen anderen Benutzer auf dem System ( user), aber es hat keine Root-Rechte und sudoist nicht auf dem System installiert.
Angenommen, ich kann aus irgendeinem Grund (Verschlüsselung, physischer Zugriff, ...) nicht auf einer Live-CD booten, um die Datei zu ändern.
Ich kenne jedoch die Anmeldeinformationen für das rootKonto.
Meine Frage ist: Gibt es eine Möglichkeit, auch programmgesteuert einen Prozess mit dem rootKonto zu starten, ohne zuerst die Anmeldeshell zu starten?
su -c "<commands>"funktioniert) ... könnten wir dann nicht einfach verwenden su -c "/bin/bash", um zu einer funktionierenden Bash mit User Root zu gelangen ?
-cwird über die Login-Shell des Benutzers ausgeführt. -skann verwendet werden, um eine andere Shell zu verwenden ... nur wenn die vorhandene Login-Shell gültig ist oder der Aufrufer root ist.

su? odergksu? so etwas wiesu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'