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:
Starten Sie neu.
Geben Sie ggf. das Startkennwort ein.
Rufen Sie das Menü Ihres Bootloaders auf.
Wenn der Einzelbenutzermodus verfügbar ist, wählen Sie diesen aus (Debian nennt ihn "Wiederherstellungsmodus").
Wenn nicht, führen Sie GRUB aus:
Markieren Sie Ihre normale Startoption.
Drücken Sie e, um den Bearbeitungsmodus aufzurufen. Möglicherweise werden Sie dort nach einem GRUB-Passwort gefragt.
Markieren Sie die Zeile, die mit kerneloder beginnt linux.
Drücken Sie e.
Fügen Sie am Ende das Wort "single" hinzu. (Vergessen Sie nicht, ein Leerzeichen voran zu stellen!)
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:
Hängen Sie das Root-Volume ein.
passwdLauf los .
Ä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:
Holen Sie sich root-Zugriff auf den Computer (catch-22 - und der wahre Trick)
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?
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 :
Rufen Sie das GRUB-Menü auf und drücken Sie e.
Wählen Sie die Zeile, die mit beginnt kernel, und drücken Sie eerneut.
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.
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)
Antworten:
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
sudo
Berechtigung zum Ausführen habenpasswd
, können Sie Folgendes tun: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
sudo
Zugang, aber Sie tun Zugang zu bearbeiten haben/etc/{passwd,shadow}
. Öffnen Sie/etc/shadow
entweder mitsudoedit /etc/shadow
oder mitsudo $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:
kernel
oder beginntlinux
.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:
und
reboot
, oder, wenn Sie Ihren normalen Runlevel kennen, sagen Sietelinit 2
(oder was auch immer es ist).Ersetzen
init
: Ä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 stattdessensingle
fügen Sie hinzuinit=/bin/sh
. Dies wird/bin/sh
anstelle von ausgeführtinit
und gibt Ihnen eine sehr frühe Hülle mit fast keinen Annehmlichkeiten. An diesem Punkt ist Ihr Ziel:passwd
Lauf los .passwd
Befehl.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
init
Sie keine Dæmons oder andere Prozesse aus, sondern nur/bin/sh
deren Kinder. Sie sind also buchstäblich allein. Sie haben auch keine Job-Kontrolle, seien Sie also vorsichtig, was Sie tippen. Einer ist verlegt,cat
und 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:
Unabhängig davon,
$SOME_ROOT_DEV
welcher Block-Gerätename von der Rettungsdiskette Ihrem Root-Dateisystem zugewiesen wurde und$EDITOR
welcher Editor Ihr Favorit ist (der sich möglicherweisevi
auf dem Rettungssystem befinden muss). Nach demreboot
, 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:
quelle
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 duchmod u+w shadow
. Finde den Eintrag fürroot
, es ist wahrscheinlich der erste und sieht ungefähr so aus:Löschen Sie alles zwischen den ersten beiden Doppelpunkten, damit Sie Folgendes erhalten:
Dann
chmod u-w shadow
. Sie können jetzt das System neu starten und root hat kein Passwort. Sie können einfachroot
an der Anmeldeaufforderung eingeben und es wird nicht nach einem gefragt. Sie können dann verwendenpasswd
, um eine festzulegen.Um besonders vorsichtig zu sein:
/etc/shadow
.quelle
passwd
von der Live-CD in einer Chroot-Umgebung zu laufen ?/etc/shadow
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 :
kernel
, und drücken Sie eerneut.single
. Dann drücken ENTERund bloslegen.Sie erhalten schließlich eine Eingabeaufforderung, in der Sie
passwd root
das Kennwort eingeben und ändern können. Geben Sie dannreboot
das System neu zu starten.quelle
/boot/grub/grub.conf
das Bootloader-Kennwort entfernen und/etc/inittab
die Einzelbenutzer-Shell in / bin / sh (cc @pradeepchhetri)