Debian Superuser-Rechte (sudo, visudo)
Allgemeine Hinweise
Linux Betriebssysteme implementieren das Prinzip der Differenzierung von Benutzerrechten, was bedeutet, dass verschiedene Konten unterschiedlich viele Zugriffsrechte auf Verzeichnisse, Dateien und Programme habenramS. Die maximalen Rechte werden dem integrierten Root-Konto gewährt. Neu erstellte Benutzerkonten unterliegen in der Regel erheblichen Einschränkungen beim Zugriff auf Systemkonfigurationsdateien, der Verwaltung von Diensten sowie der Installation und Löschung von Softwarepaketen. Allerdings wird vom Arbeiten im Betriebssystem unter dem Root-Konto vor allem aus Sicherheitsgründen dringend abgeraten. In diesem Fall ist die sudo Das Befehlszeilen-Dienstprogramm kommt zur Rettung.
Der Befehl sudo ermöglicht die Ausführung einzelner Befehle mit erhöhten Rechten (standardmäßig mit Root-Rechten) über ein nicht privilegiertes Konto. Sehen wir uns an, was erforderlich ist, damit dieses Dienstprogramm funktioniert.
Installation und Konfiguration
In Ubuntu Betriebssystem, sudo ist standardmäßig aktiviert und in DebianWenn das entsprechende Paket während des Installationsvorgangs nicht ausgewählt wurde, wird höchstwahrscheinlich das folgende Bild angezeigt:
root@debian10:~# sudo
-bash: sudo: command not found
Sie müssen also das fehlende Paket installieren. Aktualisieren Sie die Repository-Informationen und installieren Sie sudo:
apt-get update
apt-get install sudo
Wir warten auf das Ende des Prozesses:
Nach einer erfolgreichen Installation müssen Sie sudo konfigurieren, um zu bestimmen, welche Benutzer oder Gruppen in welchem Umfang die Rechteausweitung nutzen können. Alle diese Einstellungen werden in der Konfigurationsdatei gespeichert / etc / sudoersEs wird jedoch dringend davon abgeraten, direkt Änderungen daran vorzunehmen. Für diese Zwecke wird ein spezieller Befehl verwendet:
visudo
Dadurch wird ein Texteditor mit einer Konfigurationsdatei gestartet:
Für die Rechtevergabe sind zwei Linien zuständig:
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
Die erste Zeile legt die Rechte für das Root-Konto fest, die zweite legt die Rechte für Mitglieder der Sudo-Gruppe fest, die bei der Installation des Pakets erstellt wurde (die % (Ein Zeichen vor dem Namen bedeutet, dass der Name zu einer Benutzergruppe gehört).
Dementsprechend haben wir im Wesentlichen zwei Möglichkeiten, dem Benutzerkonto das Nutzungsrecht einzuräumen sudo:
Fügen Sie der Sudo-Gruppe auf dem Server ein Benutzerkonto (z. B. Benutzer) hinzu:
usermod –a –G sudo user
Nachdem Sie die Gruppenmitgliedschaft geändert haben, müssen Sie sich erneut bei diesem Konto anmelden, um die neue Konfiguration zu übernehmen. Diese Methode empfiehlt sich in Fällen, in denen dem Benutzer volle Rechte gewährt werden müssen.
Erstellen Sie in der Datei einen neuen Eintrag, beispielsweise für das Benutzerkonto. Wir fügen eine Zeile ähnlich wie root hinzu:
user ALL=(ALL:ALL) ALL
Das Hinzufügen eines neuen Eintrags empfiehlt sich in Fällen, in denen die Liste der Berechtigungen angepasst wird (dazu später mehr). Wenn wir Änderungen an der Datei vorgenommen haben, müssen wir diese speichern, indem wir die Tastenkombination Strg-O drücken und den Editor verlassen – Strg-X.
Jetzt können Sie die korrekte Funktion überprüfen:
user@debian10:~$ sudo cat /etc/sudoers
[sudo] password for user:
Der Befehl sudo fragt nach dem Passwort des aktuellen Benutzers (in diesem Fall Benutzer) – geben Sie es ein, und wenn alles richtig gemacht wurde, sehen wir den Inhalt der Systemkonfigurationsdatei.
Feintuning
Somit kann ein normaler Benutzer Befehle mit den Rechten des Root-Kontos ausführen, ohne sein Passwort zu kennen. Das ist sehr praktisch, kann aber unsicher sein – ist es möglich, den Bereich der Befehle einzuschränken, die mit sudo ausgeführt werden können? Ja, und dabei hilft uns dieselbe Konfigurationsdatei. Wir starten Visudo erneut und verstehen weiter. Wir interessieren uns für die paramNach dem Benutzernamen angegebene Werte:
Wir werden sie genauer analysieren:
- ALLER= (ALL: ALLE) ALLE - der erste Parameter bestimmt, auf welchen Host die Konfiguration angewendet wird. Bei Verwendung eines dedizierten Servers ist der parameter kann unverändert bleiben;
- ALLE=(ALLES ALLES)ALLE - die paramDie Werte in Klammern bestimmen die Berechtigung des Benutzers (erster Abschnitt).rameter) und/oder Gruppe (zweite parameter) wird der Befehl ausgeführt. Standardmäßig führt sudo den Befehl als Root aus, aber beim Start können Sie mit dem Schalter –u ein anderes Konto angeben und mit dem Schalter –g können Sie eine andere Gruppe angeben, deren Berechtigungen beim Start verwendet werden;
- ALLE=(ALLE: ALLE)ALLER- der dritte Parameter ermittelt, zu welchen Dateien und Befehlen diese Einstellungen gehören.
Bestimmen Sie auf der Grundlage des Vorstehenden ggf. die Liste der zulässigen Befehle und ersetzen Sie den letzten SchrittramÄther ALLER mit dem, was wir brauchen, indem wir die Befehle durch Kommas getrennt auflisten. Zum Beispiel die Zeile:
user ALL=(ALL:ALL) /sbin/shutdown –r, /bin/cat
Gibt dem Benutzer das Recht, mit sudo den Server mit sudo /sbin/shutdown –r neu zu starten und Dateien mit sudo /bin/cat anzuzeigen. Andere Befehle über sudo werden nicht ausgeführt. Wenn Sie beispielsweise versuchen, den Server mit dem Befehl sudo /sbin/shutdown –h herunterzufahren, erhalten wir die Antwort:
Sorry, user user is not allowed to execute '/sbin/shutdown -h' as root on debian10.
Nützlich
Sie können die Liste der Berechtigungen anzeigen, indem Sie sudo –l (die Liste für den aktuellen Benutzer wird angezeigt) oder sudo –l –U user (die Liste der Benutzerberechtigungen wird angezeigt) ausführen:
Die Zusammensetzung von sudo umfasst den Befehl sudoedit, der einen Texteditor mit der angegebenen Datei sofort mit erhöhten Rechten startet, d. h. anstelle des Befehls:
sudo nano /etc/network/interfaces
kann laufen:
sudoedit /etc/network/interfaces
Wenn Sie längere Zeit im Modus mit erhöhten Rechten arbeiten müssen und es unpraktisch ist, für jeden Befehl sudo einzugeben, können Sie über sudo eine Instanz des Befehlsinterpreters ausführen:
sudo bash
und weiter daran arbeiten – alle Teams werden mit erhöhten Rechten gestartet. Beenden Sie nach Abschluss den Interpreter mit dem Befehl „exit“.