sudo und NOEXEC

https://www.xkcd.com/149/

(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

Zurück zur Uebersicht