Wie füge ich mich als sudo-Benutzer wieder hinzu?

64

Ich habe Ubuntu 11.10 heute neu installiert und dann VirtualBox installiert. Dazu musste ich mich der Gruppe vboxusers hinzufügen. Da 11.10 anscheinend keine grafische App mehr zum Hinzufügen von Benutzern zu einer Gruppe enthält, führte ich den folgenden Befehl aus:

sudo usermod -G vboxusers stephane

Das ist ein Problem. Ich sehe jetzt, was ich stattdessen hätte laufen sollen, ist:

sudo usermod -aG vboxusers stephane

Das Endergebnis ist, dass ich nicht mehr in den Gruppen bin, in denen ich sein sollte. Einschließlich der Gruppe, die zum Ausführen von "sudo" erforderlich ist. Wenn ich jetzt einen Befehl als sudo ausführe, erhalte ich Folgendes:

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

Gibt es eine Möglichkeit, dies zu beheben, oder muss ich die Installation erneut von Grund auf durchführen?

Stéphane
quelle

Antworten:

65
  1. Halten Sie während des Startvorgangs die linke Shift Taste gedrückt, und das GRUB-Menü sollte angezeigt werden.

  2. Wählen Sie den Eintrag mit ( Wiederherstellungsmodus ) und warten Sie.

  3. Ihnen sollte nun ein Menü angezeigt werden. Wählen:

    remount    Remount / read/write and mount all other file systems 
    

    Warten Sie, bis Ihre Dateisysteme mit Lese- / Schreibberechtigungen bereitgestellt wurden, und drücken Sie dann Enter.

    Wenn diese Option nicht angezeigt wird oder nicht funktioniert, können Sie stattdessen die rootOption auswählen und den folgenden Befehl zum Mounten der Systempartition verwenden:

    mount -o remount /
    

    Sie können die Systempartition mit dem fsckBefehl oder durch Anzeigen überprüfen /etc/mtab.

    Nachdem Sie den Befehl mount erfolgreich ausgeführt haben (dh keine Fehlermeldungen), fahren Sie direkt mit Schritt 5 fort.

  4. Nach Auswahl der remountOption wird das Menü erneut angezeigt. Wählen:

    root       Drop to root shell prompt
    
  5. Geben Sie nun einen der folgenden Befehle ein, um Ihren Benutzer erneut zur adminGruppe hinzuzufügen (für Ubuntu 11.10 und früher):

    adduser <USERNAME> admin
    

    oder an die sudoGruppe (für Ubuntu 12.04 und höher):

    adduser <USERNAME> sudo
    
  6. Starten Sie neu und Sie sollten in der Lage sein, sudowieder zu verwenden .

Drehmoment
quelle
3
Wenn das Menü "remount" nicht angezeigt wird, können Sie zuerst "fsck" auswählen. Dadurch wird Ihr Dateisystem zum Lesen / Schreiben erneut gemountet. Danach können Sie Ihren Benutzer im Root-Modus hinzufügen.
Jiejing Zhang
1
Dies funktionierte für mich, außer dass ich das Dateisystem mit dem Befehl mounten musste mount -o remount,rw /.
Passuf
Das funktioniert einwandfrei. Außerdem scheint es ein großes Sicherheitsproblem zu sein. Ich denke, Sie sollten diese Funktion auf vernünftigen Maschinen deaktivieren? - Im Wiederherstellungsmodus kann ich nie neu starten. Ich muss immer benutzen reboot -f.
Romain Vincent
15

Wenn auf Ihrem System die Root-Anmeldung aktiviert ist, löschen Sie das Terminal einfach über Control+ Alt+, F1ohne sich bei X anzumelden. Melden Sie sich als Root an und fügen Sie den gewünschten Benutzer zur adminGruppe hinzu (für Ubuntu 11.10 und früher):

adduser desired_user_name admin

Fügen Sie unter Ubuntu 12.04 und höher den Benutzer der sudoGruppe hinzu:

adduser desired_user_name sudo

Wenn Sie die Root-Anmeldung nicht aktiviert haben, wählen Sie einfach den Wiederherstellungsmodus von Grub und versuchen Sie es mit der Root-Shell.

Wurzelschale

Einhängen des Dateisystems als Lese- / Schreibzugriff:

mount -o rw,remount /

Danach können Sie den gewünschten Benutzer erneut der Gruppe admin(oder sudo) hinzufügen .

heartsmagic
quelle
Aber ich kann nicht von meinem Benutzer auf sudo zugreifen!
Jamie Hutber
7

Ich habe verschiedene Kombinationen ausprobiert, nachdem ich das Gleiche getan habe, da die Remount-Menüoption nicht in 12.10 zu sein scheint. Ich habe alles andere in diesem Beitrag von root aus versucht. Das letzte war

umount -a
mount -o -w /<path> /

Dies führte in das Dateisystem noch sein ro aufgrund einer Einstellung in fstab zu booten ro auf Dateisystem Fehler denke ich, damit die besagt , es zu sein schien ro nach Berg.

Ich habe es endlich geschafft mit

mount -o rw,remount /

Obwohl ich nicht sicher bin, wie sich dies von den vorherigen Befehlen unterscheidet.

Nach dem Anwenden dieser Variante wird ein Benutzer der Gruppe admin(11.10 und älter) oder sudo(12.04 und später) auf die gleiche Weise hinzugefügt :

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later
Jodi
quelle
2

Alte Frage ist mir aber auch passiert (Ubuntu 14.04).

Es war mir nicht möglich, mich im Wiederherstellungsmodus anzumelden und Zugriff auf eine Root-Shell zu erhalten, wie viele Antworten hier und anderswo beschreiben: Der Root-Shell-Zugriff von GRUB scheint durch ein Kennwort geschützt zu sein.

Also habe ich das Problem so gelöst:

  1. booten auf einem Live-USB-Stick
  2. Öffne eine Muschel
  3. Greifen Sie auf das Hauptdateisystem von HD Linux zu (der Einhängepunkt befindet sich in der Adressleiste des GUI-Datei-Explorers, normalerweise nach STRG-L). cdhinein.
  4. Bearbeiten Sie die Datei etc/group(sagen Sie mit nano etc/groupoder irgendetwas anderes)
  5. Finde die "sudo" -Linie. Sollte aussehen, wiesudo:x:27:admin,bob,alice
  6. Fügen Sie sich in die sudoZeile ein, durch Kommas getrennt

Dies impliziert natürlich, dass die Datei etc/sudoersimmer noch die Zeile enthält

%sudo   ALL=(ALL:ALL) ALL

Dies bedeutet, dass alle Mitglieder der Gruppe sudodie vollständige Kontrolle haben. Überprüfen Sie das zuerst.

Arbeitete ereignislos.

Kebs
quelle
0

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:

  1. Starten Sie das Grub-Menü und markieren EnterSie die normale (Standard, keine Wiederherstellung!) Startoption ( drücken Sie jedoch nicht auf!).
  2. 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.
  3. Suchen Sie die Zeile, die lautet linux ... ro .... Dies ist die Kernel-Befehlszeile. Ersetzen Sie das roToken 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, shanstelle 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.
  4. 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.
  5. Nehmen Sie beispielsweise die gewünschte Änderung vor usermod -a -Gadm,sudo YOURUSERID. Bestätige damit, id -a YOURUSERIDdass du deine sudo-Mitgliedschaft wieder hast. Wenn Sie den Fehler "Befehl nicht gefunden" erhalten, verwenden Sie /sbin/usermodund /bin/id.
  6. Sie können das System zu diesem Zeitpunkt noch nicht ordnungsgemäß herunterfahren oder neu starten. reboot, haltoder powerofffunktioniert nicht und führt exitvon 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
    

    syncNur für den Fall, dass etwas schief geht, speichern Sie alle Änderungen auf der Festplatte und execersetzen 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).

  7. Melden Sie sich an und sudo rebootstarten Sie das System einmal neu, z. B. - Sie sollten Ihr sudo-Privileg wieder haben. Ein Neustart wird empfohlen, da (obwohl sehr selten) initwährend eines normalen Startvorgangs zusätzliche Parameter übergeben werden können, was wir jedoch nicht getan haben. Wenn dies execfehlschlä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 syncvor 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.

kkm
quelle