Mit sudo können User Programme als ein anderer User ausführen.
In der Konfigurationsdatei /etc/sudoers kann man angeben, wer welche Befehle als welcher Benutzer ausführen darf.
Diese Datei muss immer mit dem Programm visudo bearbeitet werden. Es sorgt dafür, dass die Datei nur von einer Person bearbeitet wird und prüft auch gleich die Syntax.
Es ist somit möglichen einzelnen Usern z.B. die Möglichkeit zu geben Druckdienste oder bind zu pflegen, aber keine weiteren Rechte zu haben. Auch die Rechte für den Shutdown u.a. können so zugeteilt werden.
sudo ist in einer Multiuser-Umgebung sehr nützlich. Es gibt auch andere, ähnliche Pakete wie z.B. CaLife .
Die Regeln sind so aufgebaut:
user host = (runas) command
An jeder Stelle können auch Aliase benutzt werden:
User_Alias - Aliase für User
Host_Alias - Aliase für Hosts
Runas_Alias - Aliase für 'als User X ausführen'
Cmnd_Alias - Pfade zu Programmen, die mit Superuserrechten ausgeführt werden dürfen
Die genauen Regeln dafür sind in der ManPage zu sudoers beschrieben.
Beispiel
Cmnd_Alias CONFIG = /usr/bin/redhat-config-bind, /usr/bin/redhat-config-httpd, /usr/bin/redhat-config-samba beispieluser1 ALL = (root) CONFIG beispieluser2 ALL = /usr/bin/rsync
Damit würde man beispieluser1 Zugriff auf eine Anzahl Konfigtools geben und beispieluser2 die Möglichkeit rsync als root auszuführen.