Ubuntu: Versehentlich wurde der Root-Benutzer in eine nicht vorhandene Shell geändert
3932
endolith
Ich habe versucht, die Shell meines Benutzers zu ändern, verwendete jedoch "sudo chsh" und änderte die Root-Shell in "bash" anstelle von "/ bin / bash". Wenn ich jetzt versuche, es zu ändern, bekomme ich "chsh: PAM-Authentifizierung fehlgeschlagen" und es scheint, als ob andere Dinge nicht funktionieren.
~$ sudo su Cannot execute bash: No such file or directory
Dies geschieht auch im Wiederherstellungsmodus. Was mache ich, um es in etwas Nutzbares umzuwandeln?
Wenn Sie sich mit Ihrem normalen Benutzer anmelden können, ändern Sie einfach die Root-Benutzer-Shell:
sudo gedit /etc/passwd
Suchen Sie die Zeile für Ihren Root-Benutzer, normalerweise den ersten, und ändern Sie den letzten Teil von
...:bash
zu
...:/bin/bash
Und du solltest gut sein.
(Hinweis: Ersetzen Sie gedit durch einen beliebigen Editor.)
Das hat funktioniert. Vielen Dank!
endolith vor 14 Jahren
1
6
JRT
Verwenden Sie die Ubuntu-Installationsdiskette, um die Live-Sitzung zu starten.
Mounten Sie die Root-Partition ('/') auf der Festplatte (stellen Sie sicher, dass sie beschreibbar ist).
Bearbeiten Sie "[HD-Einhängepunkt] / etc / passwd" (z. B. / media / sda1 / etc / passwd).
root sollte die erste Zeile sein, korrigieren Sie einfach die Login-Shell, die der letzte Eintrag in der Zeile ist.
Festplatte aushängen. CD entnehmen Starten Sie neu
Dies ist "wenn Sie sich nicht als normaler Benutzer anmelden können"
Broam vor 13 Jahren
3
2
Joshua
Ich habe vor einer Ewigkeit damit gespielt:
cd /bin ; sudo su
Was passiert, ist ohne / / die Shell wird als relativer Pfad interpretiert. Oh, wenn wir in / bin sind, wird es richtig aufgelöst.
Wenn du wirklich feststeckst; Die Rettungs-CD ist der lange Weg. Die Boot-Option init = / bin / sh gibt Ihnen sofort eine Root-Shell. Der Cursor blinkt bei Ihnen ohne Aufforderung, aber Sie haben eine Root-Shell. Tun
set -i # mount / -o remmount,rw # vi /etc/passwd <fix it> # mount / -o remount,ro # reboot -f
2
apocalysque
Beachten Sie, dass Sie zur kurzfristigen Problemumgehung die Option "-s" im Befehl su verwenden können, um eine Shell anzugeben. Zum Beispiel:
su -s /bin/bash
würde Ihre su-Sitzung mit der / bin / bash-Shell starten. Dasselbe gilt für sudo su -s / bin / bash (oder welche Shell Sie auch immer möchten). @Bjarke Freund-Hansens Antwort ist die dauerhafte Lösung.