Benutzerverwaltung und Vergabe von Sudo-Rechten in Linux

Die Benutzerverwaltung ist eine zentrale Aufgabe in der Linux-Systemadministration. Administratoren müssen sorgfältig entscheiden, welche Konten erhöhte Rechte erhalten und wie dieser Zugriff kontrolliert wird. Eine sichere und flexible Methode, solche Rechte zu vergeben, ist das Hinzufügen von Benutzern zur Sudo-Gruppe. Der Befehl sudo (Abkürzung für „superuser do“) ermöglicht es ausgewählten Nutzern, Befehle mit administrativen Rechten – in der Regel mit Root-Berechtigungen – auszuführen, ohne sich direkt als Root anmelden zu müssen.

Diese Anleitung zeigt, wie man erweiterte Rechte vergibt, indem man Benutzer der Sudo-Gruppe hinzufügt oder sudo-Regeln über die Linux-Sudoers-Datei anpasst.

Voraussetzungen

  • Zugriff auf ein Linux-System als nicht-root Sudo-Benutzer.

Benutzer zur Sudo-Gruppe hinzufügen

Auf den meisten Linux-Systemen erhalten Benutzer in der Sudo-Gruppe administrative Rechte. Dieser Ansatz ist sicherer als die direkte Anmeldung als Root, da er das Risiko unbeabsichtigter, systemweiter Fehler reduziert. Auf RHEL-basierten Distributionen (z. B. CentOS, Rocky Linux) heißt die entsprechende Gruppe häufig wheel. In produktiven Umgebungen gilt es als Best Practice, normalen Benutzerkonten Sudo-Zugriff zu gewähren.

Administratoren können Benutzer mit dem Befehl usermod in Gruppen aufnehmen. Befolgen Sie die folgenden Schritte, um Benutzer mit Sudo-Rechten anzulegen und zu konfigurieren.

Aktuell angemeldeten Benutzer prüfen

Beispielausgabe:

linuxuser

Aktuelle Sudo-Berechtigungen prüfen

Beispielausgabe:

Matching Defaults entries for linuxuser on LinuxWorkstation:
    env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin, use_pty

User linuxuser may run the following commands on LinuxWorkstation:
    (ALL) NOPASSWD: ALL

Dies zeigt, dass das Konto linuxuser jeden Befehl ausführen kann, ohne nach einem Passwort gefragt zu werden. Der Befehl ist nützlich, um Benutzerrechte zu prüfen.

Einen neuen Benutzer anlegen

Sie werden aufgefordert, ein Passwort zu setzen und Benutzerdetails einzugeben. Beispielausgaben des Systems:

info: Adding user `john' ...
info: Adding new group `john' ...
info: Creating home directory `/home/john' ...
passwd: password updated successfully
Changing the user information for john
Full Name []: john wick
Room Number []: 1234
Work Phone []: 9876543210
Home Phone []: 1234567890
Other []: 
Is the information correct? [Y/n] Y

Hinweis: Standardmäßig weist Linux neuen Benutzern eine primäre Gruppe mit ihrem Namen und manchmal zusätzlich die Gruppe users zu. Diese Gruppen enthalten keine Sudo-Rechte.

Prüfen, ob ein Benutzer Sudo-Rechte hat

Typische Ausgabe:

User john is not allowed to run sudo on LinuxWorkstation.

Sudo-Rechte vergeben

$ sudo usermod -aG sudo john

Zum Benutzer wechseln und testen

Nachdem Sie sich als john angemeldet haben, testen Sie:

Erwartete Ausgabe:

root

Mitglieder der Sudo-Gruppe anzeigen

Mit getent prüfen

Beispielausgabe:

sudo:x:27:john,jane

Mit groups prüfen

Ausgabe:

jane : jane sudo users

Für john entsprechend:

Ausgabe:

john : john sudo users

Zugriff mit der Sudoers-Datei einschränken

Die Datei /etc/sudoers sollte ausschließlich mit visudo bearbeitet werden, um Syntaxfehler zu vermeiden. Während die Mitgliedschaft in der Sudo-Gruppe umfassende Rechte vergibt, können Administratoren mit der Sudoers-Datei Befehle einschränken oder individuell anpassen.

Zugelassene Befehle definieren

Sudoers-Konfiguration für einen bestimmten Benutzer bearbeiten:

$ sudo visudo -f /etc/sudoers.d/john

Befehlsalias anlegen:

Cmnd_Alias UPDATE_AND_UPGRADE = /usr/bin/apt update, /usr/bin/apt upgrade

Zugriff ohne Passwortabfrage gewähren:

john ALL=(ALL) NOPASSWD: UPDATE_AND_UPGRADE

Oder Zugriff auf einen einzelnen Befehl:

john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

Eigene Regeln prüfen

Zum Benutzer john wechseln und Update/Upgrade-Befehle ohne Passwortabfrage ausführen:

$ sudo apt update
$ sudo apt upgrade

Andere Befehle erfordern weiterhin eine Authentifizierung oder werden je nach Konfiguration verweigert.

Sudo-Nutzerbeschränkungen mit der Sudoers-Datei hinzufügen

Zur Erhöhung der Sicherheit können Regeln festgelegt werden, wie Mitglieder der Sudo-Gruppe mit dem Befehl sudo arbeiten. Beispielsweise lässt sich die Anzahl fehlerhafter Passworteingaben oder die Dauer der Passwortspeicherung steuern. Dies geschieht über die Parameter passwd_tries und timestamp_timeout.

Sudoers-Konfiguration für die Gruppe anlegen

$ sudo visudo -f /etc/sudoers.d/sudogroup

Passwortversuche begrenzen

Defaults:%sudo passwd_tries=1

Diese Regel bedeutet:

  • Defaults:%sudo: Gilt für alle Mitglieder der Sudo-Gruppe.
  • passwd_tries=1: Nur ein fehlerhafter Passwortversuch ist erlaubt.

Um dies auf einen einzelnen Benutzer anzuwenden:

Defaults:john passwd_tries=1

Passwort jedes Mal abfragen

Defaults:%sudo timestamp_timeout=0

Erklärung:

  • timestamp_timeout=0: Keine Karenzzeit. Das Passwort muss bei jedem Sudo-Befehl neu eingegeben werden.
  • Standardwert: 15, was 15 Minuten Wiederverwendung pro Terminal-Session erlaubt.

Beschränkungen testen

Ein Paket mit falschem Passwort installieren:

Ausgabe:

sudo: 1 incorrect password attempt

Den Befehl erneut mit richtigem Passwort ausführen:

Da timestamp_timeout auf 0 gesetzt ist, wird das Passwort erneut abgefragt. Nach richtiger Eingabe wird das Paket installiert.

Hinweis: Standardmäßig beträgt timestamp_timeout 15 Minuten, sodass innerhalb dieser Zeit keine erneute Passworteingabe nötig ist.

Benutzer aus der Sudo-Gruppe entfernen

Wenn ein Benutzer keine administrativen Rechte mehr benötigt, können Sudo-Berechtigungen entzogen werden. Im folgenden Beispiel wird john entfernt.

Zu einem anderen privilegierten Benutzer wechseln

Eigene Sudoers-Konfiguration löschen

$ sudo rm /etc/sudoers.d/john

Warnung: Stellen Sie sicher, dass Sie noch Zugriff auf ein anderes Konto mit Sudo-Rechten haben, bevor Sie den einzigen administrativen Benutzer entfernen.

Benutzer aus der Gruppe entfernen

Beispielausgabe des Systems:

info: Removing user `john' from group `sudo' ...

Entfernung überprüfen

Beispielausgabe:

john : john users

Zu john wechseln und sudo testen:

Erwartete Ausgabe:

Sorry, user john is not allowed to execute '/usr/bin/apt update' as root on LinuxWorkstation.

Hinweis: Änderungen an Gruppenmitgliedschaften werden nur in neuen Terminalsitzungen wirksam.

Sudo-Zugriff mit der Sudoers-Datei gewähren

Sudo-Rechte können auch ohne Zugehörigkeit zur Sudo-Gruppe vergeben werden. Möglich ist dies, weil sudo die in der Sudoers-Datei definierten Berechtigungen prüft. Normalerweise erhalten Gruppenmitglieder Zugriff durch folgende Zeile in der Hauptdatei:

Diese Regel gewährt allen Mitgliedern der Sudo-Gruppe vollen Zugriff. Dennoch können für einzelne Benutzer eigene Regeln erstellt werden.

Neuen Benutzer anlegen

Eigene Sudoers-Datei erstellen

$ sudo visudo -f /etc/sudoers.d/joe

Vollen Zugriff für joe eintragen:

Gruppenzugehörigkeit prüfen

Ausgabe:

joe : joe users

Wechseln und testen

Nun testen:

Erwartete Ausgabe:

root

Fazit

Sie haben gesehen, wie Administratoren Sudo-Rechte entweder über die Zugehörigkeit zur Sudo-Gruppe oder direkt über Regeln in der Sudoers-Datei verwalten. Die Sudo-Gruppe bietet eine bequeme Verwaltung, während eigene Sudoers-Konfigurationen Administratoren eine feinere Kontrolle darüber geben, welche Befehle Nutzer unter welchen Bedingungen ausführen dürfen.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: