Navigation

 News
 Blog
 Dokumente
    - Upload
     Linux
    - Windows
    - IT-Security
    - Kryptologie
    - Programmierung
    - Netzwerktechnik
    - Allgemeines
 Projekte
 Hacks
 Download
 Forum
 Partner
 Banner
 Links
 Changelog
 Impressum


Willkommen 18.190.219.178

Neuesten 3 Dokus:


Partner:

www.wissenundpraxis.com
www.saveyour.homelinux.org
www.sco-world.de
www.hakin9.org/de

schon Partner...?



zurück

Lokales Root Password zurücksetzen


Hallo und Willkommen zum Tutorial Lokales Root Password zurücksetzen. Ich werde hier zeigen welche Möglichkeiten es gibt ein lokales Root Passwort unter Linux zurückzusetzen. Dabei kann es vorkommen das einige Lösungen nicht funktionieren so ist dann ein anderes Verfahren zu wählen.
Trotz meiner Tests kann ich nicht für Richitgkeit garantieren, bei Fragen oder Verbesserungsvorschlägen können Sie bequem über das Kontakformular kontakt mit mir aufnehmen.

Lösung 1
Lösung 2
Lösung 3


Lösung 1:

In einigen Distributionen besteht die Möglichkeit nach dem starten des PCs dem Bootloader Parameter zu übergeben. So kann man mit folgendem Parameter mit (bei LiLo oder GRUB):

Code:

>  init=/bin/sh

die sh-Shell starten. Genauer gesagt gebe ich init an, das er keine Login-Shell starten soll und muss mich somit nicht anmelden. Es ist ebenfalls möglich andere Shells zu benutzen wie zum Beispiel:

Code:
>  init=/bin/tsh
>  init=/bin/ksh
>  init=/bin/csh

Dies ist dem Bootloader zu Übergeben und danach mit "Return" zu bestätigen. Falls man nicht das Root-Passwort für das Default-System wiederherstellen will, so muss man vor init=/bin/sh noch den Namen des entsprechenden Eintrages wählen:

Code
>  debian-2.6.15 init=/bin/sh

Danach startet man seine Distribution und folgt den weiteren Anweisungen (siehe unten)
Da es sein kann, dass die Root-Partition nur im ReadOnly-Modus gemountet ist, muss man sie erstmal mit Schreibrechten remounten:

Code:
> $ mount -o rw,remount /dev/hdXY /


XY muss natürlich durch das entsprechende Device ersetzt werden. Falls es sich um eine SATA- oder SCSI-Festplatte handelt, muss das hd durch sd ersetzt werden. Mit

Code:
> $ rd      #oder
> $ rdev


kann man die Root-Partiton ermitteln, falls man diese nicht weiss oder man schaut einfach bei der Ausgabe von mount nach. Nun nachdem man die Schreibrechte hat, setzt man mittels

Code:
> $ passwd root


das neue Root Passwort. Alternativ kann man natürlich auch in der /etc/shadows herum editieren, das ist jedem selber Überlassen. Nach dem dies auch geschehen ist, ist die Root-Partiton wieder im ReadOnly-Modus zu versetzen:

Code:
> $ mount -o ro,remount /dev/hdXY /


Danach startet man dem Rechner einfach neu.

Wichtig:
Es ist dabei zu beachten, dass der Rechner sauber neustartet, da es sonst dazu kommen kann, dass die Veränderungen nicht Übernommen werden.
Bei mir war es so gewesen, dass ich nur mit dem Befehl reboot neustarten konnte. init 6 und shutdown -r now veweigerten ihren Dienst.

Lösung 2:

Einen ähnlichen Ansatz verfolgt auch der nächste Lösungsansatz. Wenn der Systemstart nicht gesondert gesichert ist, kann man den Bootparameter single mit übergeben (hier: bei LiLo, wenn der Kernel linux heisst)

Code:
>  linux single


Dies ist auf dem LiLo-Prompt einzugeben. Das gleiche gilt auch für den GRUB-Prompt.
Damit kommt man ohne Passwortabfrage auf die Konsole und kann dann mittels

Code:
> $ passwd <benutzername> 


das Passwort setzen. Dies funktioniert allerdings nicht bei Suse Distributionen, da diese trotzdem eine Passwortabfrage durchführen.


Lösung 3:

Einen ganz anderen Lösungsansatz verfolgt dieser Schritt. Hier startet man den Kernel mittels einer Live-Distribution von einer Live-CD (wie z.B. Knoppix) und mountet anschließend die Root-Partition.

Code:
> $ mount /dev/hdXY /mnt


Nach erfolgreichen mounten ist noch die Root-Partition auf das soeben gemountete Verzeichnis zu setzen.

Code:
> $ chroot /mnt /bin/bash


Hinweis:

Ein chroot auf Unix-Systemen ist eine Anweisung welches das Root-Verzeichnis ändert. Es hat ausschließlich Auswirkungen auf den gerade aktiven Prozess und die Sohn-Prozesse. Chroot selbst kann auf den chroot(2) system call verweisen oder auf das chroot(8) wrapper program. Ein Programm das auf ein anderes Verzeichnis wieder-gerooted wird, kann keine Dateien außerhalb des Verzeichnisses erfassen. Dies bietet einen bequemen Weg einem nicht trauendem, einem testendem oder in irgendeiner anderen Art und Weise gefährlichen Programm in einer hermetisch abgesichereten Umgebung laufen zu lassen(Sandbox). Es ist auch eine einfache Form des Gefängnis-Mechanismusses.



Nun kann man mit passwd das neue Passwort setzen. Dieses gilt dann ab sofort und ist deshalb tunlichst zu behalten.

Code:
> $ passwd root


Alternativ kann man das Passwort aus der /etc/shadows heraus löschen:

Code:
> $ vi /mnt/etc/shadows

>  root:**hier*steht*das*verschlüsselte*PW**das*gelöscht*werden*muss**:12823:0:10000::::


Danach müssen nur noch die Änderung gespeichert werden und man startet das System neu.


Quellenverzeichnis:
Addison-Wesley Verlag Linux Installation, Konfiguration, Anwendung
http://www.linux-club.de

Bei weiteren Fragen, Kritik oder Anregungen zum Artikel stehe ich natürlich jederzeit zur Verfügung.
Einfach eine E-Mail an duddits-[at]-remoteshell-security.com. Ich versuche diese dann so schnell als möglich zu beantworten.

Nach oben


Copyright © 2006-2024 Daniel Baier: Alle Rechte vorbehalten