Linux – sudoers einrichten

Lesedauer 7 Minuten

?sudo (manchmal als Abkürzung für Super-User do) ist ein Programm, mit dem Systemadministratoren ausgewählten Benutzern erlauben können, Befehle als Root (oder ein anderer Benutzer) auszuführen zu können.

sudo (manchmal als Abkürzung für Super-User do) ist ein Programm, mit dem Systemadministratoren einigen Benutzern erlauben sollen, einige Befehle als Root (oder ein anderer Benutzer) auszuführen. Die Grundphilosophie besteht darin, so wenig Privilegien wie möglich zu vergeben, aber den Menschen dennoch zu erlauben, ihre Arbeit zu erledigen. sudo ist auch eine effektive Methode, um zu protokollieren, wer wann welchen Befehl ausgeführt hat.

Hinweise für neue Debian-Benutzer

Einige neue Debian-Benutzer, die normalerweise von Ubuntu kommen, sind schockiert über Probleme wie “sudo funktioniert nicht in Debian”. Diese Situation tritt jedoch nur auf, wenn Sie während Ihrer Debian-Installation ein Root-Passwort festgelegt haben.

Wenn Sie sudo mögen und es installieren möchten (auch wenn Sie es während Ihrer Debian-Installation übersprungen haben), können Sie dies tun, aber auf die Art und Weise ohne sudo, also mit dem su-Befehl root werden, es installieren und sich selbst in sudo hinzufügen Gruppe und führt eine vollständige Abmeldung/Anmeldung durch.

Geben Sie nach “su – das Passwort des Root-Benutzers ein, das Sie während Ihrer Debian-Installation angegeben haben, und drücken Sie die Eingabetaste.

$ su -
# apt install sudo
# adduser tux sudo

Führen Sie dann bitte eine vollständige Abmeldung durch und melden Sie sich erneut an.

Warum nicht sudo?

Beachten Sie, dass historisch gesehen alle Unix-ähnlichen Systeme perfekt funktionierten, sogar bevor “sudo” erfunden wurde. Darüber hinaus könnte ein System ohne sudo immer noch Sicherheitsvorteile bringen, da das sudo-Paket wie jeder zusätzliche Teil des Systems von Sicherheitsfehlern betroffen sein könnte.

Viele Debian-Benutzer installieren sudo nicht. Stattdessen öffnen sie ein Terminal als root (zB mit su – von einem normalen Benutzer). Sie müssen also keinem Befehl ‘sudo’ voranstellen.

Warum sudo?

Die Verwendung von sudo könnte neueren Benutzern vertrauter sein, und es könnte besser (sicherer) sein, als einem normalen Benutzer zu erlauben, eine Sitzung als root zu öffnen. Einige Gründe:

  • Niemand muss das Root-Passwort kennen (sudo fragt nach dem Passwort des aktuellen Benutzers). Zusätzliche Privilegien können einzelnen Benutzern vorübergehend gewährt und dann entzogen werden, ohne dass eine Kennwortänderung erforderlich ist.

  • Es ist einfach, nur die Befehle auszuführen, die spezielle Berechtigungen über sudo erfordern; die restliche Zeit arbeiten Sie als unprivilegierter Benutzer, was den Schaden verringert, der durch Fehler verursacht werden kann.

  • Überwachung/Protokollierung: Wenn ein sudo-Befehl ausgeführt wird, werden der ursprüngliche Benutzername und der Befehl protokolliert.

Aus den oben genannten Gründen wird das Wechseln zu root mit sudo -i (oder sudo su) normalerweise abgelehnt, da es die meisten der oben genannten Funktionen aufhebt.

Benutzer und sudo

Die Standardkonfiguration von Debian erlaubt es Benutzern in der sudo-Gruppe, jeden Befehl über sudo auszuführen.

Überprüfung der sudo-Mitgliedschaft

Nachdem Sie sich als Benutzer angemeldet haben, können Sie mit den Befehlen id oder groups überprüfen, ob der Benutzer zu group=sudo gehört oder nicht. Beispielsweise sollte ein Benutzer mit id=tux nach Eingabe des folgenden Befehls

~$ groups

etwas sehen wie

tux sudo

Wenn sudo nicht in der Anzeige vorhanden ist, gehört der Benutzer nicht zu dieser Gruppe. In ähnlicher Weise sollte die komplexere und variablere Ausgabe von command=id ungefähr so aussehen

uid=1001(tux) gid=1001(tux) groups=1001(tux),27(sudo)

Fügen Sie einen vorhandenen Benutzer über die Befehlszeile hinzu

~$ sudo adduser tux sudo

Alternativ können Sie zuerst root werden (z. B. sudo su -) und dann dieselben Befehle ohne prefix=sudo ausführen:

# adduser tux
# adduser tux sudo

Nach dem Hinzufügen zu einer neuen Gruppe muss sich der Benutzer abmelden und dann wieder anmelden, damit die neue Gruppe wirksam wird. Gruppen werden Benutzern nur zum Anmeldezeitpunkt zugewiesen. Eine häufige Ursache für Verwirrung ist, dass sich Personen einer neuen Gruppe hinzufügen, sich dann aber nicht ab- und wieder anmelden und dann Probleme haben, weil die Gruppe nicht zugewiesen ist; Stellen Sie sicher, dass Sie die Gruppenmitgliedschaft überprüfen.

Überprüfe die Konfiguration:
Um sicherzustellen, dass die Konfiguration korrekt ist, kannst man den folgenden Befehl ausführen

sudo -l -U tux

Dadurch wird überprüft, ob der Benutzer über sudo-Berechtigungen verfügt.

[sudo] Passwort für tux:
Passende Defaults-Einträge für tux auf ACE:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

Der Benutzer tux darf die folgenden Befehle auf ACE ausführen:
    (ALL : ALL) ALL

Benutzer erstellen mit sudo

Sie können auch neue Benutzer mit sudo-Mitgliedschaft erstellen:

Erstellen eines neuen Benutzers während der Installation des Betriebssystems

Ein Benutzer, der bereits sudo hat, kann einen anderen Benutzer (Beispiel id=tux) mit sudo-Gruppenmitgliedschaft über die Befehlszeile erstellen:

~$ sudo adduser tux -G sudo

(oder wie im vorherigen Abschnitt zuerst root werden). Sie sollten sich dann als neuer Benutzer anmelden und die Gruppenmitgliedschaft überprüfen.

Probleme und Tipps

Entschuldigung, Benutzer tux darf nicht ausführen …

Eine typische Sitzung läuft so ab:

Bash Bash −    ◻    X
~$ sudo test
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for tux: 
Sorry, user tux is not allowed to execute '/usr/bin/test' as root on localhost.

Diese Nachricht bedeutet, was sie sagt: Der Benutzer, als den Sie ausführen, darf den angegebenen Befehl auf dem angegebenen Computer nicht ausführen. Ein verwirrender möglicher Grund dafür ist, dass der Administrator gerade den Benutzer “debian” zu einer privilegierten Gruppe hinzugefügt hat – aber Sie verwenden immer noch das alte Login, das diese neuen Gruppeninformationen nicht hat und daher keine neuen Sudo-Rechte hat. Leuten in dieser Situation wird normalerweise empfohlen, sich vollständig abzumelden und wieder anzumelden, obwohl Sie manchmal mit su – $USER oder einem Gruppenwechsel mit newgrp sudo davonkommen können.

Die include-Direktive

Die standardmäßige /etc/sudoers endet mit einer Zeile:

Bash Bash −    ◻    X
 #includedir /etc/sudoers.d 

Dies ermöglicht es anderen Paketen, Snippets in /etc/sudoers.d/<Paketname> bereitzustellen , die die Konfiguration von sudo ändern . Es sieht vielleicht so aus, als ob es bearbeitet werden müsste, um das führende Nummernzeichen (auch bekannt als “Raute” oder “Hash”) zu entfernen, aber nein, das „#“ ist Teil der Direktive!

Es wird empfohlen, auch lokale Änderungen in einem Snippet vorzunehmen.

sudoers ist schreibgeschützt!

Ja, die Datei /etc/sudoers ist absichtlich schreibgeschützt, auch für root!

Die Erklärung ist, dass es auf diese Weise eingerichtet wurde, um Administratoren zu motivieren, es immer nur mit dem Befehl visudo zu bearbeiten, der eine zusätzliche Überprüfung bietet, bevor die neue Datei an Ort und Stelle bleibt. Sie könnten denken, dass die Lösung für ein verstümmeltes /etc/sudoers so einfach sein kann wie su -c visudo , aber sudo wird oft an einer Stelle verwendet , an der es nicht möglich ist, einfach auf root zu gehen, da Sie dies einfach nicht tun kennen das Root-Passwort.

Achtung, die meisten Texteditoren lassen Sie die Datei bearbeiten, ohne sich über das schreibgeschützte Bit zu beschweren, sodass Sie diesen zusätzlichen Schutz möglicherweise nicht automatisch erhalten.

Root-Passwort erforderlich

Wenn Sie anstelle des Benutzerpassworts das Root-Passwort für die Verwendung von sudo benötigen möchten, fügen Sie die Zeile hinzu:

Bash Bash −    ◻    X
~$ Standard rootpw 

Keine Passwortabfrage für sudo-Benutzer

Wenn Sie möchten, dass sudo-Gruppenmitglieder Befehle ohne Passwort ausführen, fügen Sie die Zeile hinzu:

Bash Bash −    ◻    X
%sudo ALL=(ALLE) NOPASSWD: ALLE 

Passen Sie das Cache-Timeout für Anmeldeinformationen an:

Standardmäßig werden Ihre Anmeldeinformationen nach der Passwortabfrage von sudo zwischengespeichert und bleiben 15 Minuten lang bestehen. Sie können dieses Verhalten mit dem Befehl visudo ändern und das Timeout für einen bestimmten Benutzer anpassen:

Bash Bash −    ◻    X
Standard: foobar timestamp_timeout=30

 

Quellangabe: https://wiki.debian.org
Original-Titel: sudo


Achtung!

Der Befehl sudo wird über eine Datei unter /etc/sudoers konfiguriert.

Warnung: Bearbeiten Sie diese Datei nie mit einem normalen Texteditor! Verwenden Sie stattdessen immer den Befehl visudo!

Da eine falsche Syntax in der Datei /etc/sudoers zu einem Systembruch führen kann, bei dem es nicht möglich ist, erhöhte Berechtigungen zu erhalten, ist es wichtig, den Befehl visudo zum Bearbeiten der Datei zu verwenden.


Siehe auch:

weiter …

Dieser Beitrag wurde bisher 266 mal gelesen.