Ich habe den gleichen Fehler beim Hinzufügen meines Kontos zu einer Gruppe gemacht (habe das vergessen -a
). Ich hatte mein System mit gesperrtem Root-Login installiert und mein Konto war das einzige auf dem Computer.
Die akzeptierte Antwort hat mir nicht geholfen. Alles, was ich beim Booten im Wiederherstellungsmodus erhalten habe, war eine nicht hilfreiche Meldung
Der Zugriff auf die Konsole kann nicht geöffnet werden, das Root-Konto ist gesperrt. Weitere Informationen finden Sie in der Manpage zu sulogin (8). Drücken Sie die EINGABETASTE,
um fortzufahren
Nachdem Sie die EINGABETASTE gedrückt haben, wurde das System normal gebootet: Kein Glück, Root-Zugriff zu erhalten, um das Problem zu beheben. Ich lasse diese Antwort für den Fall, dass jemand zu diesem Zeitpunkt in meinen Schuhen landet. Verwenden Sie Folgendes nur, wenn Sie über das Menü Grub nicht in den Wiederherstellungsmodus gelangen können .
Eine exemplarische Vorgehensweise zum Abrufen der Root-Shell:
- Starten Sie das Grub-Menü und markieren EnterSie die normale (Standard, keine Wiederherstellung!) Startoption ( drücken Sie jedoch nicht auf!).
- Drücken Sie
e
. Grub zeigt einen Befehlszeileneditor mit mehreren Zeilen an, von denen jede ungewohnt oder nicht einschüchternd wirkt. Keine Sorge, alle Änderungen, die Sie vornehmen, werden nicht dauerhaft gespeichert.
- Suchen Sie die Zeile, die lautet
linux ... ro ...
. Dies ist die Kernel-Befehlszeile. Ersetzen Sie das ro
Token durch rw
, um das Root-Dateisystem zum Lesen / Schreiben zu bringen, und fügen Sie einen weiteren Kernel-Befehlszeilenparameter hinzu init=/bin/sh
. Dies weist den Kernel an, sh
anstelle von auszuführen /sbin/init
. Am Ende sollte die Linie so aussehen linux ... rw init=/bin/sh ...
. Hinweis: Sie kommen auch mit der bloßen grub>
Eingabeaufforderung zurecht. Ich erkläre Ihnen gerne Schritt für Schritt, ob alles andere für Sie fehlschlägt. Hinterlasse einfach einen Kommentar zu dieser Antwort.
- Drücken Sie F10nach der Änderung, um die Befehle aus dem Editor zum Booten des Systems zu verwenden (oder lesen Sie die Anweisungen zum Booten direkt unter dem Editor-Fenster, wenn Ihr Grub anders kompiliert ist). Sie erhalten die Root-Shell-Eingabeaufforderung, da der Init-Prozess als PID 1 mit der Root-Identität ausgeführt wird.
- Nehmen Sie beispielsweise die gewünschte Änderung vor
usermod -a -Gadm,sudo YOURUSERID
. Bestätige damit, id -a YOURUSERID
dass du deine sudo-Mitgliedschaft wieder hast. Wenn Sie den Fehler "Befehl nicht gefunden" erhalten, verwenden Sie /sbin/usermod
und /bin/id
.
Sie können das System zu diesem Zeitpunkt noch nicht ordnungsgemäß herunterfahren oder neu starten. reboot
, halt
oder poweroff
funktioniert nicht und führt exit
von der Shell aus zu einer Kernel-Panik, da nicht erwartet wird, dass der PID 1-Prozess einfach beendet wird. Die nächsten zwei Befehle, die Sie eingeben müssen, sind:
sync
exec /sbin/init
sync
Nur für den Fall, dass etwas schief geht, speichern Sie alle Änderungen auf der Festplatte und exec
ersetzen Sie die Shell durch die reale init
(dies kann systemd, upstart oder System V init sein, wird aber immer aufgerufen /sbin/init
). Das System fährt höchstwahrscheinlich normal hoch (kein Wiederherstellungsmodus).
- Melden Sie sich an und
sudo reboot
starten Sie das System einmal neu, z. B. - Sie sollten Ihr sudo-Privileg wieder haben. Ein Neustart wird empfohlen, da (obwohl sehr selten) init
während eines normalen Startvorgangs zusätzliche Parameter übergeben werden können, was wir jedoch nicht getan haben. Wenn dies exec
fehlschlägt, setzen Sie den Computer einfach zurück und lassen Sie ihn normal starten. Alle modernen Journaling-Dateisysteme wie ext4, xfs und btrfs stellen sich schnell wieder her (höchstens ein paar Sekunden für eine Journalüberprüfung, wenn sie sync
vor dem Zurücksetzen bearbeitet wurden), und Sie sind fertig.
Ein bisschen wie ein Hintergrund
Es gab eine Diskussion über den Debian-Fehlerbericht über genau dieses Problem, und soweit man versteht, wurde entschieden, dass dies ein Feature und kein Fehler ist, was ich eher als Fehler betrachte. Ich bin seit 25 Jahren in diesem Geschäft und kann mich dem Argument von Michael Biebl in Nachricht Nr. 31 in diesem Thread nur widersetzen:
Beachten Sie Folgendes: Sie haben einen Laptop mit einem gesperrten Root-Konto. Standardmäßig generiert der Grub-Bootloader einen Boot-Eintrag für den Rettungsmodus. Selbst wenn Sie das BIOS sperren, um das Booten von CD-ROM oder USB nicht zuzulassen, und Sie das Kennwort für grub schützen, kann jemand leicht Root-Zugriff erhalten, wenn Sie den Laptop für einen Moment unbeaufsichtigt lassen.
Der richtige, wenn auch nicht allgemein genug, Einspruch der IMO wurde in Nachricht Nr. 70 von Felipe Sateler erhoben:
Für viele (die meisten?) Computer bedeutet physischer Zugriff, dass das Spiel sicherheitshalber verloren geht, da Sie einfach die Box zerlegen und die Festplatte abrufen können.
Dies gilt insbesondere für den Laptop, der in Michaels Argument erwähnt wird: Wenn Sie ihn einen Moment lang unbeaufsichtigt lassen und jemand hinter Ihren Daten her ist, wird der Laptop einfach verschwunden sein und nie wieder gesehen werden. Und für jede Maschine, nicht "viele" oder "die meisten", auch wenn diese an 8 Punkten in ein Rack geschraubt sind, ist das Spiel wirklich vorbei, sobald der Angreifer physischen Zugriff auf die Maschine hat.