Zum Inhalt springen

Sudo/Konfiguration: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
DanielZorin (Diskussion | Beiträge)
Zeile 11: Zeile 11:
;Allgemeiner Grundsatz für die Konfiguration von sudoers
;Allgemeiner Grundsatz für die Konfiguration von sudoers


# Öffnen Sie die gewünschte Datei mit visudo (Haupt- oder Drop-in-Datei).
# Öffnen Sie die gewünschte Datei mit ''visudo'' (Haupt- oder Drop-in-Datei).
# Nehmen Sie Änderungen vor und speichern Sie die Datei.
# Nehmen Sie Änderungen vor und speichern Sie die Datei.
# visudo überprüft die Syntax.
# ''visudo'' überprüft die Syntax.
# Wenn die Überprüfung fehlschlägt, werden die Änderungen nicht übernommen und visudo gibt eine Fehlermeldung aus.
# Wenn die Überprüfung fehlschlägt, werden die Änderungen nicht übernommen und visudo gibt eine Fehlermeldung aus.
# Überprüfung: sudo -l. Führen Sie einen Testbefehl aus.
# Überprüfung: ''sudo -l''. Führen Sie einen Testbefehl aus.


;Konfiguration Öffnen
;Konfiguration Öffnen
Zeile 64: Zeile 64:
* Die Dateien haben keine Erweiterung.
* Die Dateien haben keine Erweiterung.


; Regeln (User Specifications).
Jeder dieser Einträge beschreibt:
* wer (USER)
* auf welchen Hosts (HOSTS)
* was ausführen darf (COMMANDS)
* im Namen von wem (RUNAS)
* mit welchen Modifikatoren (TAGS)


; Schreiben von sudoers-Regeln
; Schreiben von sudoers-Regeln


Allgemeiner Aufbau einer Zeile (Benutzerspezifikation):
Allgemeiner Aufbau einer Zeile:


  USER HOSTS = (RUNAS) [TAGS] COMMANDS
  USER HOSTS = (RUNAS) [TAGS] COMMANDS


* '''USER''' — Benutzername oder Gruppe (`%group`), Aliase sind möglich.
* '''USER''' — Für dieses Feld kann einer der folgenden Werte angegeben werden:
:* Benutzer
:* Gruppe (GID-Gruppe)
:* Netgroup (NIS)
:* Alias
* '''HOSTS''' – auf welchen Hosts die Regel gilt (Namen/Masken/IP, Aliase sind möglich).
* '''HOSTS''' – auf welchen Hosts die Regel gilt (Namen/Masken/IP, Aliase sind möglich).
* '''(RUNAS)''' – in wessen Namen und/oder mit welcher Gruppe ausführen (Standardwert `root`).
* '''(RUNAS)''' – in wessen Namen und/oder mit welcher Gruppe ausführen (Standardwert ''root'').
* '''[TAGS]''' – Modifikatoren wie `NOPASSWD`, `NOEXEC`, `SETENV` usw.
* '''[TAGS]''' – Modifikatoren
:* '''NOPASSWD:''' – kein Passwort für die aufgeführten Befehle abfragen.
:* '''PASSWD:''' – Passwort für die aufgeführten Befehle abfragen.
:* '''SETENV:''' – Verwaltung der Umgebung zulassen.
:* '''NOEXEC:''' – Unterprozesse innerhalb des Befehls verbieten.
* '''COMMANDS''' – Liste der vollständigen Pfade zu Befehlen (vorzugsweise ohne Wildcards), Aliase sind möglich.
* '''COMMANDS''' – Liste der vollständigen Pfade zu Befehlen (vorzugsweise ohne Wildcards), Aliase sind möglich.


Zeile 92: Zeile 108:


* Überprüfen Sie die Rechte für einen bestimmten Benutzer mit dem Befehl sudo -l.
* Überprüfen Sie die Rechte für einen bestimmten Benutzer mit dem Befehl sudo -l.


== Aufruf ==
== Aufruf ==

Version vom 4. November 2025, 12:47 Uhr

Sudo/Konfiguration - Beschreibung

Beschreibung

  • Hauptdatei: /etc/sudoers
  • Modulare Regeln werden als Drop-Ins bezeichnet und befinden sich standardmäßig unter: /etc/sudoers.d/
  • Es wird empfohlen, die Konfiguration nur über visudo zu bearbeiten, da dieses Programm die Syntax überprüft und irreversible Konfigurationsfehler verhindert.

Installation

Allgemeiner Grundsatz für die Konfiguration von sudoers
  1. Öffnen Sie die gewünschte Datei mit visudo (Haupt- oder Drop-in-Datei).
  2. Nehmen Sie Änderungen vor und speichern Sie die Datei.
  3. visudo überprüft die Syntax.
  4. Wenn die Überprüfung fehlschlägt, werden die Änderungen nicht übernommen und visudo gibt eine Fehlermeldung aus.
  5. Überprüfung: sudo -l. Führen Sie einen Testbefehl aus.
Konfiguration Öffnen

Sie können den Konfigurationseditor mit folgendem Befehl öffnen:

sudo visudo


Unter Debian erfolgt der Start mit nano, da dies standardmäßig in der Systemvariablen editor angegeben ist.

Sie können dies wie folgt überprüfen:

readlink -f /usr/bin/editor

Änderung des Standard-Editors:

sudo update-alternatives --config editor
Drop-Ins einschalten
  • Am Ende von /etc/sudoers steht normalerweise:
@includedir /etc/sudoers.d
  • Sie können auch eine separate Datei mit der Anweisung @include in die Konfiguration einfügen.
@include /usr/local/etc/sudoers.custom
Hinweis
In älteren Versionen von sudo (<1.9.1) begannen die Anweisungen mit dem Zeichen # statt mit @. Beide Formate werden jedoch unterstützt.


Bezeichnung der Drop-in-Dateien

Allgemein übliche Bezeichnung der Drop-in-Dateien:

  • NN-topic, wobei NN die Dateinummer ist. Die Reihenfolge der Lesbarkeit ist lexikografisch (alphabetisch, von 00 bis 99).
  • Beispiel:
/etc/sudoers.d/
├── 00-defaults
├── 10-groups
├── 50-nginx
└── 90-local
  • Die Dateien haben keine Erweiterung.
Regeln (User Specifications).

Jeder dieser Einträge beschreibt:

  • wer (USER)
  • auf welchen Hosts (HOSTS)
  • was ausführen darf (COMMANDS)
  • im Namen von wem (RUNAS)
  • mit welchen Modifikatoren (TAGS)
Schreiben von sudoers-Regeln

Allgemeiner Aufbau einer Zeile:

USER HOSTS = (RUNAS) [TAGS] COMMANDS
  • USER — Für dieses Feld kann einer der folgenden Werte angegeben werden:
  • Benutzer
  • Gruppe (GID-Gruppe)
  • Netgroup (NIS)
  • Alias
  • HOSTS – auf welchen Hosts die Regel gilt (Namen/Masken/IP, Aliase sind möglich).
  • (RUNAS) – in wessen Namen und/oder mit welcher Gruppe ausführen (Standardwert root).
  • [TAGS] – Modifikatoren
  • NOPASSWD: – kein Passwort für die aufgeführten Befehle abfragen.
  • PASSWD: – Passwort für die aufgeführten Befehle abfragen.
  • SETENV: – Verwaltung der Umgebung zulassen.
  • NOEXEC: – Unterprozesse innerhalb des Befehls verbieten.
  • COMMANDS – Liste der vollständigen Pfade zu Befehlen (vorzugsweise ohne Wildcards), Aliase sind möglich.


Aliase


User_Alias WEBOPS = alice, bob
Runas_Alias DBUSERS = postgres, mysql
Host_Alias WEBSERVERS = www01, www02
Cmnd_Alias NGINX_CTL = /bin/systemctl start nginx, /bin/systemctl stop nginx, /bin/systemctl restart nginx, /bin/systemctl status nginx


Beispiel für eine vollständige Zeile:

WEBOPS WEBSERVERS = (root) NOPASSWD: NGINX_CTL
  • Überprüfen Sie die Rechte für einen bestimmten Benutzer mit dem Befehl sudo -l.

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch


Dokumentation

Man-Page
  1. prep(1)
Info-Pages

Links

Projekt

Weblinks



TMP

Konfiguration

Nach der Installation muss jeder Benutzer, der SuperUser-Rechte erhalten soll, der Gruppe "sudo" hinzugefügt werden

usermod -G sudo -a BENUTZERNAME
Ausführen von sudo ohne Passwort
visudo

In der sudoers.d Datei in der letzten Zeile folgenden Befehl einfügen

'USER' ALL=(ALL) NOPASSWD:ALL
  • User ist der Name des Users, den das betreffen soll
Einzelne Befehle auszuschließen
  • in der Klammer die Befehle listen, die gewünscht sind, in diesem Fall sind das alle Befehle (ALL)

Dateien