Heute habe ich mich aus meiner Gnublin-Bastelplatine ausgesperrt. Ich hatte die Wlan-Konfiguration kaputtgemacht, so dass ich mich nicht mehr per SSH einloggen konnte. Also Notfallvariante – USB-Kabel anstecken und den Fehler per serieller Konsole beheben. Nun stand ich aber vor dem Problem, dass ich das root-Passwort vergessen hatte. Normalerweise brauch ich das nicht, denn für SSH nutze ich public keys.
Ich musste also irgendwie das root-Passwort zurücksetzen. Zunächst habe ich Google befragt, wie das am schnellsten zu erledigen wäre. In den Google-Ergebnissen tauchten immer wieder die folgenden zwei Vorschläge auf:
single
oder init=/bin/bash
als zusätzliche Bootparameter im Bootloader angeben um die Passwortabfrage zu umgehen und anschließend mit passwd
ein neues Passwort setzenchroot
dieses Dateisystem als Rootverzeichnis festlegen und dann mit passwd
ein neues Passwort setzenAllerdings war für mich beides nicht möglich. Der Apex-Bootloader bietet während des Bootvorgangs keine Möglichkeit, die Bootparameter zu ändern und chroot
funktionierte auch nicht, da das Gnublin-Board einen ARM-Prozessor hat und mein x64-Rechner folglich mit den Programmen auf der Gnublin-Partition nichts anfangen kann.
Also hieß es etwas tiefer ins Linux-System eintauchen und selber Hand anlegen:
Traditionell sind die Linux-Passwörter in der Datei /etc/passwd
gespeichert. Man braucht nur diese Datei mit root-Rechten zu öffnen, die Zeile für den root-Benutzer zu suchen und alles zu löschen, was in dieser Zeile zwischen dem ersten und dem zweiten Doppelpunkt steht.
Falls zwischen diesen beiden Doppelpunkten ein x
steht, muss man aufpassen: Dieses x
bedeutet, dass sich das eigentliche Passwort in der (für normale Nutzer nicht zugänglichen) Datei /etc/shadow
befindet. In diesem Fall sollte man die Datei /etc/passwd
unverändert lassen und die Änderung in /etc/shadow
durchführen. Das Löschen des x
in /etc/passwd
würde zwar auch funktionieren, aber die Folge wäre, dass das Passwort für das root-Konto in Zukunft direkt in /etc/passwd
gespeichert wird. Aus Sicherheitsgründen ist /etc/shadow
jedoch besser.
Abspeichern, fertig. Das root-Konto hatte nun kein Passwort mehr und ich konnte mich ohne Passwortabfrage per serieller Konsole als root einloggen, die Wlan-Einstellungen korrigieren – und schließlich noch mit passwd
ein neues root-Passwort setzten.
veröffentlicht am 18.02.15 um 0:39 Uhr
Tags: Computer, Linux
Wie soll man sich denn bitte root eine Datei bearbeiten, wenn einem eben dieses root-Passwort fehlt?
@Markus
Da das System sicherlich nicht verschlüsselt war, konnte Johannes das System einfach in einem Linux als zusätzliche Festplatte/Speicher mounten. Dort hat er sich einfach als root zum Verzeichnis durchgehangelt und die Dateien bearbeitet.
So könnte ich es mir vorstellen.
Viele Grüße
Stefan
Genau. Man benötigt nur das Root-Passwort des Systems, mit dem man arbeitet – in diesem Fall mein Notebook. Dann kann man Speichermedien von anderen Systemen mounten und hat auch auf diesen Rootrechte.