sudoers, das unbekannte Wesen

Wenn man z.B. aus PHP heraus mit dem Apache User wwwrun befehle ausführen möchte scheitert man i.d.R. an Berechtigungsprobleme (Gott sei Dank :-)). Der wwwrun User hat weder eine Shell zugeordnet, noch kann er, wenn ihm eine Shell zugeordnet wurde Befehle ausführen.

Grundsätzlich ist es ein Problem aus der Webseite heraus Befehle auszuführen. Man kann dem wwwrun eine Shell zuweisen (Achtung: vernünftiges Passwort setzen), oder dem den Webseiten unterschiedliche User, die mit verschiedenen Rechten laufen.

Allerdings bleibt nach dem Einsetzen einer Shell immer noch das Problem, dass man im Grunde auf dem System nichts darf. Hier bietet sich an, dies auf einzelne Befehle zu reduzieren. Dazu öffnet man sudoers und fügt eine Zeile hinzu:

wwwrun ALL=(ALL)NOPASSWD:/usr/bin/test

Hier wird dem Benutzer wwwrun ermöglicht den Befehl test auszuführen. (sudo /usr/bin/test) Er braucht dabei auch kein Passwort eingeben. (Wie soll das aus dem Apache sonst auch gehen…)

Wenn man von der Webseitenproblematik mal absieht und möchte das jeder einer bestimmten Gruppe einen Rechner herunterfahren können soll, wäre folgender Befehl denkbar:

%admins ALL=(ALL)NOPASSWD:/usr/sbin/halt

Jeder der Mitglied der Gruppe admins ist, darf den Rechner herunterfahren ohne das root-Passwort einzugeben.

 

admin has written 157 articles