Root Passwort vergessen! Und nun?

Wem ist das heutzutage noch nicht passiert? Bei den unzähligen Passwörtern die sich bereits ein Otto-Normal Verbraucher für den Umgang im Internet merken muss, wundert es nicht wenn selbst das eigene root Kennwort mal vergessen wird. Nur leider gibt es bei solch einer Lappalie keinen Webserver auf der anderen Seite, welcher einem vielleicht auf die hinterlegte E-Mail Adresse das vergessene Kennwort zukommen lässt oder aber auch direkt ein neues temporäres Passwort erstellt. Bei dem Verlust des root Passworts ist zwar etwas mehr Aufwand notwendig, jedoch ist auch dieser sehr überschaubar und auch ohne große Unix Kenntnisse zu stemmen.

Eines Vorweg: Gibt es einen weiteren Benutzer mit root Rechten in dem System, kann mit diesem das vergessene root Passwort mit Hilfe des Unix Befehls passwd root geändert werden.
Für das Zurücksetzen des vergessenen Benutzerpasswortes gibt es verschiedene Ansätze. Zum einen ist es möglich, das Passwort über den Wiederherstellungsmodus zurück zu setzen oder aber auch über den Boot-Loader an entsprechender Stelle zu ändern. Den nun mir gezeigten Lösungsansatz halte ich jedoch für den einfachsten und überschaubarsten.
Ausgangspunkt ist ein ausgeschalteter Computer mit einem Linux Betriebssystem, bei dem logischerweise das Root Passwort vergessen wurde. Ein Nicht-Root Authentifizierter User ist zwar hilfreich um an die meisten Daten auf dem Betriebssystem zu gelangen, jedoch ist es mit solch einem Benutzer nicht möglich das vergessene root Passwort zurückzusetzen, da die Bearbeitung / Manipulation bestimmter Dateien wiederum root Rechte benötigt.

Der einfachste Weg das vergessene root Passwort zurückzusetzen, ist die Verwendung einer Live-CD. Eine Live-CD ist eine CD, mit dessen Hilfe on-the-fly ein beliebiges (in diesem Fall Linux) Betriebssystem gestartet werden kann (Heutzutage sind die meisten Linux Betriebssystem CD’s Live-CD’s). Hierzu ist es lediglich notwendig, dem PC während des Start Vorganges mitzuteilen, das dieser von der eingelegte CD booten soll. Oft ist das Starten von CD als Standard in dem BIOS eingestellt, andernfalls ist eine Anpassung in den jeweiligen Einstellungen notwendig.

Live-CD

Wer beispielsweise bereits eine Ubuntu CD (oder ein anderes Linux Derivat wie z.B. Knoppix, Damn Small Linux, Kubuntu, …) in der Nähe liegen hat, darf gerne auf diese zurückgreifen. Alternativ kann die aktuellste Ubuntu Version auf der offiziellen Ubuntu Homepage heruntergeladen werden.

Download Ubuntu

http://www.ubuntu.com/download/ubuntu/download
Das Image muss lediglich auf ein Rohling gepresst werden um das Betriebssystem anschließend von der CD starten zu können.

Terminal

Nach erfolgreichem booten der Live-CD ist es zunächst einmal notwendig -wenn nicht bereits in einem Terminal gestartet-, einen Terminal zu öffnen. Im nächsten Schritt muss die Partition um die es sich handelt, in das Live-System eingebunden werden. Damit auch die richtige Partition aus der Partitionstabelle ausgelesen und später in das Live-System eingebunden wird, ist es zunächst notwendig mit folgendem Befehl die Partitionstabelle auszulesen.

sudo fdisk -l

Bei der Ausführung von fdisk unbedingt darauf achten, diesen Befehl mit sudo (oder anderen root Rechten) abzusetzen, da sonst eine leere Ergebnismenge zurückgeliefert wird.

Eine mögliche Partitionstabelle könnte wie folgt aussehen:

Platte /dev/sda: 500.1 GByte, 500107862016 Byte
255 Köpfe, 63 Sektoren/Spur, 60801 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xfbc39217

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *           1       13055   104864256    7  HPFS/NTFS
/dev/sda2           13056       19321    50330624   83  Linux
/dev/sda3           19322       19582     2096482+  82  Linux Swap / Solaris
/dev/sda4           19583       60801   331091587    5  Erweiterte
/dev/sda5           19583       45690   209712478+   7  HPFS/NTFS
/dev/sda6           45691       60801   121379076    7  HPFS/NTFS

Partition mounten

Im nächsten Schritt muss die Linux Partition (in diesem Beispiel /dev/sda2) in das Live System eingebunden werden. Dies passiert über den den Unix Befehl mount.
Hinweis: SATA Festplatten werden mit sda gekennzeichnet, IDE Festplatten in der Regel mit hda.

mount /dev/sda2 /mnt/

Das Benutzerbetriebssystem befindet sich nun in der Ordnerhierarchie des Live Systems. Alle unter /dev/mnt/ angesprochenen Ordner betreffen das Betriebssystem, bei welchem das root Passwort abhanden gekommen ist.

Möglichkeit 1: chroot

Mit dem Unix Befehl passwd das vergessene Passwort als neuer root (chroot) neu vergeben:

chroot /mnt
passwd
<Passwort ändern>

Möglichkeit 2: /etc/shadow

Die /etc/shadow Textdatei beinhaltet hoch sensible Daten über die im System registrierten Benutzer, weshalb diese Datei nur mit root Rechten bearbeitet werden kann.
Die /etc/shadow Datei ist eine zeilenweise mit Doppelpunkten getrennte Textdatei, die wie folgt aufgebaut:

Aufbau der /etc/shadow

<login name>:<encrypted password>:<date of last password change>:<minimum password age>:<maximum password age>:<password warning period>:<password inactivity period>:<account expiration date>:<reserved field>

/etc/shadow bearbeiten

Zum bearbeiten der /etc/shadow benutzen wir den Standard Texteditor vi.

sudo vi /etc/shadow

Zum Löschen des root Passworts wird folgende Zeile wie folgt geändert.

Vorher (mit Beispiel Passwort):

root:$6$bHsXq2UD$5ox1BKQ9y/Fa2aVDAMuic2tRiZrNNm2ibg1.m7SQtJ7eJVUhPIkS3T6GET/13yE8M7rO9nsHaFj2lFI5rgA0a0:15197:0:99999:7:::

Nachher:

root::15197:0:99999:7:::

Das Kennwort des root Benutzers wird schlicht und einfach aus der Datei gelöscht.

Reboot

Nachdem die shadow-Datei erfolgreich manipuliert wurde, kann das Betriebssystem nun ganz normal gestartet werden. Der root Benutzer beantwortet zum Anmelden die Passwortabfrage mit einem einfachen Enter (leeres Passwort).

Hinweis: Der root Benutzer muss immer mit einem Passwort abgesichert sein, damit potentiellen Angreifer nicht ohne Weiteres den PC mit root Rechten bedienen können. Daher bitte unmittelbar nach dem Login das Passwort des Root Benutzers ändern. In der Konsole geht dies am einfachsten mit dem Unix Befehl passwd.