Wie können wir das root-Passwort ändern?


Antworten:


63

Hier sind ein paar Möglichkeiten, die ich mir vorstellen kann, von den am wenigsten aufdringlichen bis zu den am meisten aufdringlichen.

Ohne neu zu starten

Mit sudo: Wenn Sie die sudoBerechtigung zum Ausführen haben passwd, können Sie Folgendes tun:

sudo passwd root

Geben Sie Ihr Passwort ein und geben Sie dann zweimal ein neues Passwort für root ein. Getan.

Bearbeiten von Dateien : Dies funktioniert in dem unwahrscheinlichen Fall , dass Sie nicht über vollen sudoZugang, aber Sie tun Zugang zu bearbeiten haben /etc/{passwd,shadow}. Öffnen Sie /etc/shadowentweder mit sudoedit /etc/shadowoder mit sudo $EDITOR /etc/shadow. Ersetzen Sie das Passwortfeld von root (alle zufälligen Zeichen zwischen dem zweiten und dritten Doppelpunkt :) durch das Passwortfeld Ihres Benutzers. Sparen. Der Local hat das gleiche Passwort wie Sie. Melden Sie sich an und ändern Sie das Passwort in etwas anderes.

Das sind die Einfachen.

Neustart erforderlich

Einzelbenutzermodus : Dies wurde gerade von Renan erklärt. Es funktioniert, wenn Sie zu GRUB (oder Ihrem Bootloader) gelangen und die Linux-Befehlszeile bearbeiten können. Es funktioniert nicht, wenn Sie Debian, Ubuntu und einige andere verwenden. Für einige Bootloader-Konfigurationen ist ein Kennwort erforderlich, und Sie müssen dies wissen, um fortfahren zu können. Ohne weiteres:

  1. Starten Sie neu.
  2. Geben Sie ggf. das Startkennwort ein.
  3. Rufen Sie das Menü Ihres Bootloaders auf.
  4. Wenn der Einzelbenutzermodus verfügbar ist, wählen Sie diesen aus (Debian nennt ihn "Wiederherstellungsmodus").
  5. Wenn nicht, führen Sie GRUB aus:
    1. Markieren Sie Ihre normale Startoption.
    2. Drücken Sie e, um den Bearbeitungsmodus aufzurufen. Möglicherweise werden Sie dort nach einem GRUB-Passwort gefragt.
    3. Markieren Sie die Zeile, die mit kerneloder beginnt linux.
    4. Drücken Sie e.
    5. Fügen Sie am Ende das Wort "single" hinzu. (Vergessen Sie nicht, ein Leerzeichen voran zu stellen!)
    6. Drücken Sie Enterund starten Sie die bearbeitete Zeilengruppe. Einige GRUBs verwenden Ctrl- X, andere verwenden b. Am unteren Rand des Bildschirms wird angezeigt, um welche es sich handelt.

Ihr System wird im Einzelbenutzermodus gestartet. Einige Distributionen werden Sie zu diesem Zeitpunkt nicht nach einem root-Passwort fragen (Debian und Debian-basierte tun dies). Du bist jetzt root. Ändern Sie Ihr Passwort:

mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot

und reboot, oder, wenn Sie Ihren normalen Runlevel kennen, sagen Sie telinit 2(oder was auch immer es ist).

Ersetzeninit : Äußerlich ähnlich dem Einzelbenutzermodus-Trick, mit weitgehend denselben Anweisungen, erfordert jedoch viel mehr Geschick mit der Befehlszeile. Sie booten Ihren Kernel wie oben, aber stattdessen singlefügen Sie hinzu init=/bin/sh. Dies wird /bin/shanstelle von ausgeführt initund gibt Ihnen eine sehr frühe Hülle mit fast keinen Annehmlichkeiten. An diesem Punkt ist Ihr Ziel:

  1. Hängen Sie das Root-Volume ein.
  2. passwdLauf los .
  3. Ändern Sie Ihr Passwort mit dem passwdBefehl.

Abhängig von Ihrer speziellen Konfiguration sind diese möglicherweise trivial (identisch mit den Anweisungen für den Einzelbenutzermodus) oder äußerst nicht trivial: Laden von Modulen, Initialisieren von Software-RAID, Öffnen verschlüsselter Volumes, Starten von LVM usw. Ohne führen initSie keine Dæmons oder andere Prozesse aus, sondern nur /bin/shderen Kinder. Sie sind also buchstäblich allein. Sie haben auch keine Job-Kontrolle, seien Sie also vorsichtig, was Sie tippen. Einer ist verlegt, catund Sie müssen möglicherweise neu starten, wenn Sie nicht wieder herauskommen.

Rettungsdiskette : Diese ist einfach. Booten Sie eine Rettungsdiskette Ihrer Wahl. Hängen Sie Ihr Root-Dateisystem ein. Der Prozess hängt davon ab, wie Ihre Volumes geschichtet sind, läuft aber letztendlich auf Folgendes hinaus:

 # do some stuff to make your root volume available.
 # The rescue disk may, or may not do it automatically.
 mkdir /tmp/my-root
 mount /dev/$SOME_ROOT_DEV /tmp/my-root
 $EDITOR /tmp/my-root/etc/shadow
 # Follow the `/etc/shadow` editing instructions near the top
 cd /
 umount /tmp/my-root
 reboot

Unabhängig davon, $SOME_ROOT_DEVwelcher Block-Gerätename von der Rettungsdiskette Ihrem Root-Dateisystem zugewiesen wurde und $EDITORwelcher Editor Ihr Favorit ist (der sich möglicherweise viauf dem Rettungssystem befinden muss). Nach dem reboot, erlauben normalerweise die Maschine zu booten; Das root-Passwort ist das Ihres eigenen Benutzers. Melden Sie sich als root an und ändern Sie es sofort.

Andere Möglichkeiten

Offensichtlich gibt es unzählige Variationen zu den oben genannten. Sie alle lassen sich in zwei Schritten zusammenfassen:

  1. Holen Sie sich root-Zugriff auf den Computer (catch-22 - und der wahre Trick)
  2. Ändere irgendwie das Passwort von root.

Wie auch immer, um dies aus der Ferne zu tun? Angenommen, SSH wurde heruntergefahren.
CMCDragonkai

1
Ohne SSH (oder unter der Annahme einer der anderen, beängstigend unsicheren Methoden wie rsh oder telnet) haben Sie keinen Fernzugriff auf den Computer und können das Kennwort nicht ändern. Es sei denn, der Zielcomputer hat ein bekanntes Problem, das remote ausgenutzt werden kann, und das Ihnen dabei helfen kann, eine Shell zu erzeugen. Der Gedanke macht mir mehr Angst als ein Telnet-Daemon, der darauf läuft. :)
Alexios

Also müsste ich mich physisch dorthin teleportieren, um das Problem zu beheben?
CMCDragonkai

WRT "Ändere irgendwie das Passwort von root", siehe hier: unix.stackexchange.com/a/168422/25985
goldilocks

7

Das sollte bei fast jeder Distribution funktionieren, denke ich.

Wenn Sie von einem anderen System aus auf die Root-Partition zugreifen können, z. B. von einer Live-CD, können Sie von dort aus als Root die Partition bearbeiten /etc/shadow. zuerst musst du chmod u+w shadow. Finde den Eintrag für root, es ist wahrscheinlich der erste und sieht ungefähr so ​​aus:

root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::

Löschen Sie alles zwischen den ersten beiden Doppelpunkten, damit Sie Folgendes erhalten:

root::15666:0:99999:7:::

Dann chmod u-w shadow. Sie können jetzt das System neu starten und root hat kein Passwort. Sie können einfach rootan der Anmeldeaufforderung eingeben und es wird nicht nach einem gefragt. Sie können dann verwenden passwd, um eine festzulegen.

Um besonders vorsichtig zu sein:

  • Erstellen Sie zuerst eine Sicherungskopie von /etc/shadow.
  • Melden Sie sich nur als root an, bevor Sie ein neues Passwort festgelegt haben. Dies ist nicht kritisch, schützt jedoch vor der theoretischen Möglichkeit, dass nicht privilegierte Malware eine Art Hagel-Mary-Pass macht ("Hey, vielleicht gibt es kein root-Passwort ..."). Ein bisschen weit hergeholt IMO.

Das wird funktionieren, aber mein Junge bringt mich dazu, das Passwort von einem Root-Account zu entfernen. Ich nehme an, dass Ubuntu Sie nicht in einer Root-Shell in Runlevel 1 ablegt? Oder wäre es nicht besser, passwdvon der Live-CD in einer Chroot-Umgebung zu laufen ?
SailorCire

Wenn Sie sich sicherer fühlen, wenn Sie zuerst diese anderen Methoden ausprobieren, fahren Sie fort. Solange Sie das System jedoch nicht ohne Root-Passwort verlassen, sollte dies in Ordnung sein. Es gibt keinen Grund für Malware, dies auszunutzen, denn wenn sie beim Booten ausgeführt wird, verfügt sie ohnehin bereits über Root-Berechtigungen. Melden Sie sich also nicht zuerst als jemand anderes an (möglicherweise ein Problem auf Systemen, auf denen Root-Zugriff über den Display-Manager nicht möglich ist, es sei denn, Sie können zur Konsole wechseln). Selbst dann scheint es ziemlich unwahrscheinlich.
Goldlöckchen

@SailorCire ^^^
Goldlöckchen

Ich bin auch sehr zweifelhaft über die Möglichkeit von Malware. Die Idee hinter dem, was ich vorgeschlagen habe, ist jedoch, dass es die Mentalität "Oh, ich werde es später ändern, weil es jetzt funktioniert" verbietet, auf die viele von uns hereinfallen.
SailorCire

In dieser Antwort finden Sie auch Möglichkeiten zum manuellen Generieren eines Kennworts für/etc/shadow
NullUser

4

Nach den Tags zu urteilen, nehme ich an, dass Sie RHEL verwenden, aber diese Lösung sollte für alle Distributionen gleich gut funktionieren.

Wenn Sie das root-Passwort vergessen haben, können Sie im Einzelbenutzermodus booten und damit das Passwort ändern. Dieser Ansatz wird in der schrittweisen Anleitung zu Red Hat beschrieben :

  1. Rufen Sie das GRUB-Menü auf und drücken Sie e.
  2. Wählen Sie die Zeile, die mit beginnt kernel, und drücken Sie eerneut.
  3. Am Ende dieser Zeile setzen Sie single. Dann drücken ENTERund bloslegen.

Sie erhalten schließlich eine Eingabeaufforderung, in der Sie passwd rootdas Kennwort eingeben und ändern können. Geben Sie dann rebootdas System neu zu starten.


1
Dies funktioniert nur, wenn Sie kein Boot-Passwort haben.
Pradeepchhetri

1
Und wenn Sie nicht / sbin / sulogin für die Single-User-Shell verwenden (es wird nach dem root-Passwort gefragt).
James O'Gorman

Wenn Sie zum Dateisystem gelangen, können Sie /boot/grub/grub.confdas Bootloader-Kennwort entfernen und /etc/inittabdie Einzelbenutzer-Shell in / bin / sh (cc @pradeepchhetri)
NullUser
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.