Wenn das root-Password vergessen wurde

feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Wenn das root-Password vergessen wurde

Beitrag von feissmaik »

Wenn das root-Password vergessen wurde
Wenn man das root-Passwort vergessen hat muss man nicht gleich das ganze System neu aufsetzen..
Man kann das verlorene Passwort zwar nicht mehr herausfinden, aber es gibt ein paar Tricks mit denen man das Passwort in den meisten Fällen ändern kann. In dieser Anleitung werde ich 3 Methoden beschreiben, mit denen man relativ leicht und ohne besondere Linux-Kenntnisse das root-Passwort ändern kann ohne es zu kennen.
  • Methode 1: In den Einzelbenutzermodus starten
  • Methode 2: In eine Konsole starten
  • Methode 3: Passwort mit einer LiveCD ändern
  • Methode 4: Speziell für den RaspberryPI
Alle vier Methoden die ich hier beschreibe haben eins gemeinsam: Man muss den Gerätenamen (zum Beispiel /dev/hda2, /dev/sda4 o.Ä.) der Partition kennen auf der sich das Stammverzeichnis befindet (auch Root-Verzeichnis oder Wurzelverzeichnis genannt, es ist das Verzeichnis mit dem Pfad “/” gemeint.) Bei der Installation von Linux werden meistens 2-3 Partitionen angelegt, meistens hat man eine sehr kleine Boot-Partition, eine ebenfalls meist eher kleine Swap-Partition und eine Partition auf der das ganze System installiert wird und auf der die Daten liegen. Den Gerätenamen letzterer muss man kennen. Wenn man diesen nicht kennt kann man diesen mit dem befehl df oder dem Befehl mount herausfinden, dazu öffnet man einfach eine Konsole und gibt mount oder df ein. Das funktioniert auch als normaler Benutzer, root-Rechte braucht man dazu nicht

Code: Alles auswählen

mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
[...]
Hier sieht man das der Gerätename für / gleich /dev/sda1 ist. Diesen muss man sich merken!
(Hinweis: Der Gerätename fängt immer mit /dev/ an)


Nun zum eigentlichen Teil dieser Anleitung

Methode 1: In den Einzelbenutzermodus starten

Die einfachste Methode besteht darin einfach in den Einzelbenutzermodus zu starten indem man “single” an die Boot-Optionen anhängt. Manche Distributionen bieten das als “Recovery Mode” o.Ä. an, bei manchen Distributionen wird diese Methode allerdings nicht funktionieren weil vorher das root-Passwort verlangt wird, welches man ja nicht mehr weiß... Aber da es die einfachste Methode ist kann man es ja trotzdem einfach mal versuchen

Wenn man den Rechner einschaltet wird meistens nach kurzer Zeit das Startmenü vom Bootloader angezeigt, wo man auswählen kann welches Betriebssystem man starten möchte oder ob man evtl. in einen Wartungsmodus starten will. Eventuell wird auch anstatt des Startmenüs sowas angezeigt:
GRUB loading, please wait ...

Press ESC to enter menu ...
Durch drücken der Escape-Taste gelangt man dann zum Startbildschirm/Menü. In diesem Menü ist es möglich dem Betriebssystem noch einige Optionen beim Start mitzugeben.

Benutzer von LinuxMint haben es hier besonders leicht: Einfach den “recovery mode” starten und dort drop to root shell prompt auswählen (dann mit Schritt 3 weitermachen). Benutzer anderer Distributionen gehen wie folgt vor:


1.
Bei manchen Distributionen (z.B. openSUSE, LinuxMint) befindet sich unten eine Eingabezeile in der zusätzliche Boot-Optionen eingetragen werden können. Dort trägt man einfach single hinter den anderen Optionen ein und drückt dann die Eingabetaste um das System in den Einzelbenutzermodus zu starten.

Wenn man diese Eingabezeile nicht hat tut man folgendes:

1) Den Eintrag auswählen den man normalerweise auch zum Starten benutzt.
2) e drücken, und mit den Pfeiltasten zu der Zeile gehen die mit »kernel« anfängt.
3) Wieder e drücken, und am Ende der Zeile single hinzufügen.
4) Dann mit der Eingabetaste bestätigen und b drücken um das System zu starten.

Nun wird Linux gestartet und man landet bei einer Eingabeaufforderung. Wenn Linux nun nach dem Passwort fragt wird diese Methode nicht funktionieren, denn das Passwort kennt man ja nicht mehr.

In dem Fall sollte man eine andere Methode versuchen. Ansonsten geht es weiter zu Schritt 2.

2.
Wahrscheinlich ist das die Partition auf der sich das Stammverzeichnis / (auch Wurzelverzeichnis oder Root-Verzeichnis genannt) befindet noch als nur lesbar eingebunden. Es muss als les- und schreibbar eingebunden werden um das Passwort zu ändern

Code: Alles auswählen

mount -o remount, rw /
Wenn das nicht funktioniert, muss man den Gerätenamen mit angeben

Code: Alles auswählen

mount -o remount, rw <Gerätename> /
Jetzt kann man mit dem passwd-Befehl ein neues Passwort setzen. Nicht wundern, das Passwort wird während der Eingabe nicht angezeigt, auch nicht durch Sternchen
root@(none):/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Wenn nun password updated successfully da steht wurde erfolgreich ein neues Passwort festgelegt. Jetzt muss das Dateisystem wieder nur-lesbar eingebunden werden:

Code: Alles auswählen

mount -o remount,ro /
Danach einfach den Rechner neu starten!



Methode 2: In eine Konsole starten

Man kann den Kernel beim Start anweisen anstatt des normalen Init-Systems einfach eine Shell zu starten. Dort ist man dann automatisch als root eingeloggt, nach dem Passwort wird nicht gefragt

Hier verfährt man eigentlich genau so wie bei Methode 1, nur mit dem Unterschied das man nicht single an die Boot-Optionen anhängt sondern init=/bin/bash
Ansonsten tut man genau das was in Methode 1 beschrieben wird

Achtung: Möglicherweise ist nicht die deutsche, sondern die US Tastenbelegung aktiviert. Um ein = zu bekommen muss man die ‘-Taste (zwischen ? und der Backspace/Löschen-Taste) drücken. Für ein / drückt man die – Taste. In Wirklichkeit gibt man also folgendes ein: init‘-bin-bash



Methode 3: Passwort mit einer LiveCD ändern

Wenn die anderen beiden Methoden nicht funktionieren kann man auch eine LiveCD (Knoppix, Damn Small Linux, etc.) starten, mit chroot zum Rootverzeichnis des richtigen Systems zu wechseln und mit passwd das Passwort wechseln.

1. ist öffnet man eine Konsole in der man sich erst einmal mit su root-Rechte beschafft. Dann wird ein Einbindepunkt für das Stammverzeichnis von Linux erstellt

Code: Alles auswählen

su
mkdir /mnt/linux
Anschließend wird das Stammverzeichnis eingebunden und mittels chroot in das richtige Linux gewechselt, dort wird dann mit root-Rechten passwd ausgeführt um das Passwort zu ändern.

Code: Alles auswählen

mount <Hier Gerätename einfügen> /mnt/linux
chroot /mnt/linux
passwd
<Neues Passwort eingeben>
exit
Jetzt muss der Rechner nur noch neu gestartet werden!


Methode 4: Speziell für den RaspberryPI
Wenn ihr euer Password vergessen habt aber die SD nicht neu flashen wollt, bleibt euch nur die Möglichkeit in einen speziellen Modus zu booten. Dazu müsst ihr die SD Karte in euren Kartenleser stecken und die cmdline.txt bearbeiten.
Normalerweise sieht die Zeile in der cmdline.txt so aus:

Code: Alles auswählen

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Fügt dort in die Erste Zeile ans Ende, folgendes ein:

Code: Alles auswählen

init=/bin/sh
Die veränderte Zeile würde dann also zum Beispiel wie folgt aussehen:

Code: Alles auswählen

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait init=/bin/sh
Datei speichern und wieder in den RaspberryPI stecken sowie anschliesend booten - ihr solltet dann ziemlich schnell einen command prompt erhalten.. Dort gebt ihr folgendes ein:

Code: Alles auswählen

mount -o remount,rw /
passwd pi
Jetzt legt ihr ein neues Password für den Benutzer pi fest (es kann aber auch für root geändert werden, dann wäre der Befehl passwd root)
Danach müsst ihr noch folgende Befehle ausführen/eingeben:

Code: Alles auswählen

sync
exec /sbin/init
Anschliesend müsste der PI weiter booten und ihr gelangt in euer eigentliches System. Hier angekommen müsst ihr unbedingt die /boot/cmdline.txt bearbeiten und das zuvor eingefügte init=/bin/sh wieder entfernen.

Fertig :D
Du musst nicht kämpfen um zu siegen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast