Sudo und Superuser (Debian)
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.