Moin!
also:
Es ist, wie ich es mir dachte. Mit sudo kann man Befehle ausführen, wenn der Benutzer und der Befehl mit Pfadnamen und Optionen in sudoers stehen.
Ein Problem gabs mit dem Script: ich hatte zuviel erlauben müssen. Folglich lasse ich den wwwrun ein Perlskript starten, welches es ihm erlaubt: das pid-file zu lesen, den Apache zu beenden und neu zu starten. Dazu muss ich den Zugriff auf das Perlskript einräumen und außerdem auf das binary.
[1] /home/wwwrun/restartHttpd.pl: (erstellen, chmod 755)
#! /usr/bin/perl
open (DAT,'/var/run/httpd.pid');
$pid=<DAT>;
$kill="kill $pid";
system $kill;
system "/usr/sbin/httpd";
[2] /etc/sudoers: (anhängen)
wwwrun linux=NOPASSWD: /usr/sbin/httpd
wwwrun linux=NOPASSWD: /home/wwwrun/restartHttpd.pl
[3] in php:
start = system('sudo /home/wwwrun/restartHttpd.pl')
Tut es bei mir zumindest. Du musst/kannst die Pfade anpassen, ich habe dem wwwrun extra ein "home" erstellt.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch für seriöse Agenturen.