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.