Sudo/Konfiguration: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
|||
| 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 | Allgemeiner Aufbau einer Zeile: | ||
USER HOSTS = (RUNAS) [TAGS] COMMANDS | USER HOSTS = (RUNAS) [TAGS] COMMANDS | ||
* '''USER''' — | * '''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 | * '''(RUNAS)''' – in wessen Namen und/oder mit welcher Gruppe ausführen (Standardwert ''root''). | ||
* '''[TAGS]''' – Modifikatoren | * '''[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
- Öffnen Sie die gewünschte Datei mit visudo (Haupt- oder Drop-in-Datei).
- Nehmen Sie Änderungen vor und speichern Sie die Datei.
- visudo überprüft die Syntax.
- 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.
- 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
- 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)