Wie man den "Benutzername nicht in der Sudoers-Datei" Vorfall unter Linux behebt

Veröffentlicht 27. August 2024

Erhalten Sie die Fehlermeldung "Benutzername ist nicht in der sudoers-Datei" wenn Sie versuchen, einen Befehl mit sudo-Rechten auszuführen? In diesem Artikel betrachten wir zwei Möglichkeiten, dieses Problem zu beheben und dem Benutzer sudo-Zugriff zu gewähren.

Schnelle Lösung: Benutzer zur Sudoers-Datei hinzufügen

Um den Fehler "Benutzername ist nicht in der sudoers-Datei" zu beheben und dem Benutzer sudo-Rechte zu gewähren, können Sie den Benutzernamen zur sudoers-Datei hinzufügen. Hier ist eine Anleitung:

  1. Öffnen Sie ein Terminal und melden Sie sich als Benutzer mit sudo-Rechten oder als Root-Benutzer an.

  2. Führen Sie diesen Befehl aus, um die sudoers-Datei zu bearbeiten:

    sudo visudo

    Dieser Befehl öffnet die sudoers-Datei in einem Texteditor und sperrt die Datei, um mehrfache Bearbeitungen zu verhindern.

  3. Gehen Sie ans Ende der Datei und fügen Sie diese Zeile hinzu:

    benutzername ALL=(ALL) ALL

    Ersetzen Sie "benutzername" durch den Benutzernamen, dem Sie sudo-Rechte gewähren möchten.

  4. Speichern Sie die Änderungen und verlassen Sie den Texteditor. Im Standard-Texteditor (nano) drücken Sie Strg+X, dann Y und Enter, um zu speichern und zu beenden.

Alternative Methode: Benutzer zur Sudo-Gruppe hinzufügen

Anstatt die sudoers-Datei direkt zu ändern, können Sie den Benutzer zur sudo-Gruppe hinzufügen. Diese Methode ist einfacher und birgt ein geringeres Risiko von Syntaxfehlern. Um den Benutzer zur sudo-Gruppe hinzuzufügen, verwenden Sie diesen Befehl:

sudo usermod -aG sudo benutzername

Ersetzen Sie "benutzername" durch den Benutzernamen, den Sie zur sudo-Gruppe hinzufügen möchten.

---example Um den Benutzer "jana" zur sudo-Gruppe hinzuzufügen, führen Sie aus:

sudo usermod -aG sudo jana

Nach Ausführung dieses Befehls wird "jana" in der sudo-Gruppe sein und kann sudo verwenden, um Befehle mit Superuser-Rechten auszuführen.

Überprüfen des Sudo-Zugriffs eines Benutzers

Um zu überprüfen, ob ein Benutzer sudo-Zugriff hat, können Sie den Befehl id verwenden, um seine Gruppenmitgliedschaften anzuzeigen:

id benutzername 

Wenn der Benutzer in der sudo-Gruppe ist oder zur sudoers-Datei hinzugefügt wurde, sollten Sie "sudo" in seinen Gruppen aufgelistet sehen.

Wichtige Überlegungen

  • Seien Sie vorsichtig, wenn Sie Benutzern sudo-Zugriff gewähren, da dies ihnen erlaubt, Aufgaben auszuführen, die Systemdateien und -einstellungen ändern können.
  • Geben Sie sudo-Zugriff nur Benutzern, die ihn für ihre Aufgaben benötigen und denen Sie vertrauen.
  • Überprüfen und aktualisieren Sie regelmäßig die Liste der Benutzer mit sudo-Zugriff, um Ihr System sicher zu halten.

Verstehen der Ursache des Fehlers

Die sudoers-Datei ist eine Konfigurationsdatei in Linux-Systemen, die die Benutzerberechtigungen für die Ausführung von Befehlen mit sudo (superuser do) steuert. Diese Datei legt fest, welche Benutzer oder Gruppen sudo verwenden und Root-Rechte erlangen dürfen.

Wenn ein Benutzer versucht, einen Befehl mit sudo auszuführen, überprüft das System die sudoers-Datei, um zu verifizieren, ob der Benutzer die notwendigen Berechtigungen hat. Wenn der Benutzer nicht in der Datei aufgeführt ist oder nicht über die entsprechenden Berechtigungen verfügt, erscheint die Fehlermeldung "Benutzername ist nicht in der sudoers-Datei".

Die sudoers-Datei befindet sich normalerweise unter /etc/sudoers und sollte nur mit dem Befehl visudo bearbeitet werden, der auf Syntaxfehler prüft und Dateibeschädigung verhindert.

Häufige Gründe für den Fehler

  1. Benutzer nicht zur sudoers-Datei hinzugefügt: Wenn der Benutzer kürzlich erstellt wurde oder sudo-Berechtigungen während der Benutzereinrichtung nicht gewährt wurden, wird sein Benutzername nicht in der sudoers-Datei stehen.

  2. Benutzer aus der sudoers-Datei entfernt: Wenn die sudo-Berechtigungen des Benutzers widerrufen wurden oder sein Eintrag versehentlich aus der sudoers-Datei gelöscht wurde, hat er keinen sudo-Zugriff mehr.

  3. Benutzer nicht in der sudo-Gruppe: Einige Linux-Distributionen, wie Ubuntu, verwenden eine sudo-Gruppe anstatt Benutzer direkt zur sudoers-Datei hinzuzufügen. Wenn der Benutzer kein Mitglied der sudo-Gruppe ist, kann er sudo nicht verwenden.

  4. Syntaxfehler in der sudoers-Datei: Wenn es Syntaxfehler oder Fehler in der sudoers-Datei gibt, kann dies verhindern, dass sudo für alle Benutzer korrekt funktioniert.

graph TD A[Benutzer versucht sudo-Befehl auszuführen] --> B{Ist Benutzer in sudoers-Datei?} B -->|Ja| C[Befehl mit sudo-Rechten ausgeführt] B -->|Nein| D{Ist Benutzer in sudo-Gruppe?} D -->|Ja| C[Befehl mit sudo-Rechten ausgeführt] D -->|Nein| E[Fehlermeldung: Benutzername ist nicht in der sudoers-Datei]

---example:"Hinzufügen eines Benutzers zur sudoers-Datei"

Um einen Benutzer namens "johannes" zur sudoers-Datei hinzuzufügen, folgen Sie diesen Schritten:

  1. Öffnen Sie ein Terminal und führen Sie sudo visudo aus.
  2. Fügen Sie die folgende Zeile zur Datei hinzu: johannes ALL=(ALL) ALL.
  3. Speichern Sie die Datei und beenden Sie sie.

Nun hat der Benutzer "johannes" sudo-Rechte.

Beheben des Fehlers

Um den Fehler "Benutzername ist nicht in der sudoers-Datei" zu beheben, müssen Sie entweder den Benutzer direkt zur sudoers-Datei hinzufügen oder ihn zur sudo-Gruppe hinzufügen, abhängig von der Konfiguration Ihres Systems.

Methode Befehl
Benutzer zur sudoers-Datei hinzufügen sudo visudo, dann benutzername ALL=(ALL) ALL hinzufügen
Benutzer zur sudo-Gruppe hinzufügen sudo usermod -aG sudo benutzername

Verwenden Sie immer den Befehl visudo, um die sudoers-Datei zu bearbeiten, um das Risiko von Syntaxfehlern zu minimieren und sicherzustellen, dass sudo-Berechtigungen korrekt gewährt werden.

Wenn Sie die Fehlermeldung "Benutzername ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet" erhalten, bedeutet dies üblicherweise, dass der Benutzer, mit dem Sie versuchen, Befehle auszuführen, nicht über die erforderlichen sudo-Rechte verfügt. Dieser Fehler tritt auf, wenn ein Systembenutzer versucht, einen Befehl mit dem sudo-Befehl auszuführen, ohne in der sudoers-Datei aufgeführt oder Mitglied der sudo-Gruppe zu sein.

Benutzer zur sudo-Gruppe hinzufügen

Eine weitere Möglichkeit, einem Benutzer sudo-Rechte zu geben, besteht darin, ihn zur sudo-Gruppe hinzuzufügen. Die sudo-Gruppe ist eine spezielle Gruppe, die es ihren Mitgliedern ermöglicht, den sudo-Befehl zu verwenden und Befehle mit Superuser-Rechten auszuführen.

Um einen Benutzer zur sudo-Gruppe hinzuzufügen, verwenden Sie den Befehl usermod mit den Optionen -aG, gefolgt vom Gruppennamen und Benutzernamen:

sudo usermod -aG sudo benutzername

Ersetzen Sie benutzername durch den tatsächlichen Benutzernamen, den Sie zur sudo-Gruppe hinzufügen möchten.

Zum Beispiel, um den Benutzer "jana" zur sudo-Gruppe hinzuzufügen, führen Sie aus:

sudo usermod -aG sudo jana

Nach Ausführung dieses Befehls wird der Benutzer "jana" Mitglied der sudo-Gruppe sein und kann den sudo-Befehl verwenden, um Befehle mit Superuser-Rechten auszuführen.

Die Verwendung der sudo-Gruppe zur Verwaltung von Benutzerberechtigungen hat mehrere Vorteile:

Vereinfachte Verwaltung

Anstatt die sudoers-Datei für jeden Benutzer zu bearbeiten, können Sie Benutzer zur sudo-Gruppe hinzufügen oder daraus entfernen, um sudo-Zugriff zu gewähren oder zu entziehen.

Konsistenz

Durch die Verwendung der sudo-Gruppe behalten Sie eine einheitliche Methode zur Vergabe von sudo-Rechten für mehrere Benutzer bei.

Geringeres Risiko von Syntaxfehlern

Das Hinzufügen von Benutzern zur sudo-Gruppe macht es unnötig, die sudoers-Datei direkt zu ändern, wodurch das Risiko von Syntaxfehlern verringert wird, die sudo daran hindern könnten, korrekt zu funktionieren.

Einfachere Überprüfung

Sie können schnell überprüfen, welche Benutzer sudo-Rechte haben, indem Sie die Mitglieder der sudo-Gruppe mit dem Befehl auflisten:

grep sudo /etc/group

Dieser Befehl zeigt eine Zeile wie diese an:

sudo:x:27:jana,bob,alice

In diesem Beispiel sind die Benutzer "jana", "bob" und "alice" Mitglieder der sudo-Gruppe und haben sudo-Rechte.

Es ist wichtig zu beachten, dass die sudo-Gruppe nicht in allen Linux-Distributionen verfügbar ist. Einige Systeme, wie CentOS, verwenden stattdessen eine wheel-Gruppe. Überprüfen Sie immer die Dokumentation Ihrer Distribution, um die richtige Gruppe für die Vergabe von sudo-Rechten zu finden.

Zum Beispiel können Sie in CentOS einen Benutzer zur wheel-Gruppe hinzufügen, um sudo-Rechte zu gewähren:

sudo usermod -aG wheel benutzername

Ändern der Sudoers-Datei

Während das Hinzufügen eines Benutzers zur sudo-Gruppe eine einfache Möglichkeit ist, sudo-Rechte zu gewähren, kann es Situationen geben, in denen Sie die sudoers-Datei ändern müssen. Das Bearbeiten der sudoers-Datei sollte mit Vorsicht erfolgen, da Syntaxfehler dazu führen können, dass sudo nicht mehr funktioniert.

Um die sudoers-Datei zu bearbeiten, müssen Sie einen Texteditor mit Root-Rechten verwenden. Die empfohlene Methode ist die Verwendung des Befehls visudo, der die sudoers-Datei im Standard-Texteditor öffnet und beim Speichern der Änderungen auf Syntaxfehler prüft. Um die sudoers-Datei mit visudo zu öffnen, führen Sie aus:

sudo visudo

Sobald die Datei geöffnet ist, können Sie einen Benutzer oder eine Gruppe mit folgender Syntax zur sudoers-Datei hinzufügen:

benutzername ALL=(ALL) ALL
%gruppenname ALL=(ALL) ALL

Ersetzen Sie benutzername durch den tatsächlichen Benutzernamen und gruppenname durch den tatsächlichen Gruppennamen, dem Sie sudo-Rechte gewähren möchten.

---example:"Gewähren von sudo-Zugriff für einen Benutzer"

Um dem Benutzer "johannes" sudo-Zugriff zu gewähren, fügen Sie diese Zeile zur sudoers-Datei hinzu:

johannes ALL=(ALL) ALL

Dies erlaubt dem Benutzer "johannes", jeden Befehl mit sudo-Rechten von jedem Host aus auszuführen.

Bewährte Praktiken beim Ändern der sudoers-Datei

  • Verwenden Sie immer visudo, um die sudoers-Datei zu bearbeiten
  • Überprüfen Sie die Syntax Ihrer Änderungen gründlich
  • Beschränken Sie den sudo-Zugriff auf nur notwendige Befehle und Benutzer
  • Verwenden Sie Gruppen, um den sudo-Zugriff für mehrere Benutzer zu verwalten
  • Erstellen Sie eine Sicherungskopie Ihrer sudoers-Datei, bevor Sie Änderungen vornehmen

Überprüfen der Lösung

Nachdem Sie den Benutzer zur sudoers-Datei oder zur sudo-Gruppe hinzugefügt haben, sollten Sie überprüfen, ob die Änderungen wirksam geworden sind und der Benutzer nun Befehle mit sudo-Rechten ausführen kann.

Testen des sudo-Zugriffs

Um zu überprüfen, ob der Benutzer sudo-Befehle ausführen kann, wechseln Sie zu seinem Konto oder melden Sie sich als dieser Benutzer an und versuchen Sie dann, einen Befehl mit sudo auszuführen, wie zum Beispiel:

sudo ls

Dieser Befehl versucht, den Inhalt des aktuellen Verzeichnisses mit Superuser-Rechten aufzulisten. Wenn der Benutzer sudo-Zugriff hat, wird der Befehl erfolgreich ausgeführt, nachdem der Benutzer sein Passwort eingegeben hat. Wenn der Benutzer keine sudo-Rechte hat, erscheint eine Fehlermeldung, die besagt, dass der Benutzer nicht in der sudoers-Datei ist.

Hier ist ein Beispiel für das Testen des sudo-Zugriffs für den Benutzer "johannes":

su johannes
sudo ls

Wenn "johannes" sudo-Rechte hat, wird der ls-Befehl ausgeführt und den Verzeichnisinhalt anzeigen. Wenn nicht, erscheint eine Fehlermeldung wie diese:

johannes ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.

Überprüfen der Gruppenmitgliedschaften

Eine weitere Möglichkeit, den sudo-Zugriff zu überprüfen, besteht darin, die Gruppenmitgliedschaften des Benutzers mit dem Befehl groups zu überprüfen:

groups johannes

Wenn der Benutzer zur sudo-Gruppe hinzugefügt wurde, sollten Sie "sudo" in der Ausgabe sehen:

johannes : johannes sudo

Diese Ausgabe bestätigt, dass der Benutzer "johannes" in der sudo-Gruppe ist und sudo-Rechte hat.

Fehlerbehebung bei sudo-Zugriffsproblemen

Wenn der Benutzer nach dem Hinzufügen zur sudoers-Datei oder sudo-Gruppe immer noch kein sudo verwenden kann, überprüfen Sie Folgendes:

  • Die Syntax der sudoers-Datei ist korrekt, und es gibt keine Fehler im Eintrag des Benutzers
  • Der Benutzer wurde zur richtigen Gruppe hinzugefügt (sudo oder wheel, je nach Distribution)
  • Der Benutzer hat sich ab- und wieder angemeldet, oder das System wurde neu gestartet, damit die Gruppenänderungen wirksam werden

Häufige sudo-Fehlermeldungen und Lösungen

Fehlermeldung Lösung
benutzername ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet. Fügen Sie den Benutzer zur sudoers-Datei oder zur sudo-Gruppe hinzu.
[sudo] Passwort für benutzername:
benutzername ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.
Der Benutzer ist nicht in der sudoers-Datei oder der sudo-Gruppe. Fügen Sie den Benutzer zur richtigen Gruppe oder Datei hinzu.
Entschuldigung, Benutzer benutzername darf '/pfad/zum/befehl' nicht als root auf hostname ausführen. Der Benutzer ist in der sudoers-Datei, aber sein Eintrag erlaubt ihm nicht, den Befehl auszuführen. Ändern Sie den Eintrag des Benutzers in der sudoers-Datei, um die benötigten Berechtigungen zu gewähren.

---example Um den Benutzer "alice" auf einem Ubuntu-System zur sudo-Gruppe hinzuzufügen, verwenden Sie diesen Befehl:

usermod -aG sudo alice

Nach Ausführung dieses Befehls melden Sie sich ab und wieder als "alice" an, dann testen Sie den sudo-Zugriff:

sudo ls

Wenn der Befehl erfolgreich ausgeführt wird, hat "alice" nun sudo-Rechte.