(Bild von XKCD)
Beim Vergeben von Regeln fuer sudo muss man neben anderen Dingen eine Kleinigkeit beachten.
Nehmen wir an, wir wollten einem User erlauben die Datei /var/log/messages
unter Linux zu betrachten. Dazu machen wir folgende zwei Eintraege mittels
visudo
(bitte immer dieses Kommando verwenden, da es eine Syntax-Pruefung der /etc/sudoers
durchfuehrt):
%messages ALL = /usr/bin/less /var/log/messages
Damit duerfen alle Mitglieder der Gruppe messages
das angegebene Kommando ausfuehren. Dann legen wir noch die Gruppe messages
an und fuegen den Nutzer hinzu.
addgroup messagesadduser user messages
Alles ist gut, der Nutzer kann less
ausfuehren und sich die Datei /var/log/messages
anschauen.
Leider kann er aber auch eine „Schweinerei“ machen, die wir ihm nicht verboten haben. Wenn er in less
die Taste v
drueckt wird der Editor (in der Regel vim
) gestartet. In vim
kann er durch Eingabe von :!bash
die Bash starten und hat eine Shell als root
zur Verfuegung, mit der er alles machen kann.
Das kann und muss man als verantwortungsvoller Administrator verhindern, in dem man das Woertchen NOEXEC
vor dem Kommando verwendet, fuer das die Rechte vergeben werden. In unserem Fall:
%messages ALL = NOEXEC: /usr/bin/less /var/log/messages