Übersicht
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:
~$ 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:
#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:
~$ 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:
%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:
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.
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:
- So bearbeiten Sie die Sudoers-Datei @ digitalocean.com
Dieser Beitrag wurde bisher 266 mal gelesen.