Sudo und Superuser (Debian)

Aus MattWiki

Nutzung

$ sudo xxx          # Befehl xxx als Superuser ausführen
$ sudo bash         # Bash-Konsole als Superuser ausführen
$ sudo -i           # Zum Root-User wechseln
$ su                # Zum Root-User wechseln
$ su -              # Root-shell als Login-shell starten. Damit werden z.B. Pfade richtig gesetzt

Sudo

Zuordnung User unter Debian

Bei Debian gibt es die Benutzergruppe sudo, zu der ein User nur zugeordnet werden muss:

$ su -                 # (Durch das "-" werden die Pfade in der Root-Shell richtig gesetzt)
# addgroup <username> sudo


Einrichtung

Die Konfiguration von sudo wird in /etc/sudoers und in /etc/sudoers.d/ gespeichert.

Die Dateien müssen ein bestimmtes Format haben und Zugriffsrechte -r--r----- (440) haben.

Für die Bearbeitung der Konfiguration wird das Programm visudo verwendet:

  • visudo bearbeitet /etc/sudoers
  • visudo -f <filename> bearbeitet andere Dateien, z. B. die individuellen dateien unter /etc/sudoers.d/

Beispiele:

root            ALL = (ALL) ALL

Das heißt root darf alle Befehle mit sudo ausführen.

%administrator  ALL = (ALL) ALL

Die Gruppe administrator darf alle Befehle mittels sudo als root ausführen.

admin           ALL = NOPASSWD: ALL
%users          ALL = NOPASSWD: /usr/sbin/IRGENDEINSKRIPT

Der Benutzer admin darf ohne Passwortabfrage alle Programme ausführen. Die Gruppe users darf ohne Passwortabfrage den Befehl /usr/sbin/IRGENDEINSKRIPT ausführen.

Sicherheitshinweis

Man sollte die Passwortabfrage nur für Skripte oder Programme deaktivieren, die in einem Systemverzeichnis (/bin, /sbin, /usr/bin, /usr/sbin, ...) liegen und root gehören.

Grund: Ist die Passwortabfrage beispielsweise für das Skript ~/bin/mein-skript deaktiviert, dann kann es ein Angreifer mit Benutzerrechten einfach löschen und durch ein beliebiges Skript oder Programm ersetzen und dann mit Root-Rechten ausführen. Auf diese Weise wäre das gesamte System kompromittiert. Erst wenn das Skript root gehört und nur von root geändert werden kann und auch in einem Verzeichnis liegt, in dem nur root Schreibrechte hat, ist dieser Angriff nicht mehr möglich.