PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dienste per PHP starte/stoppen/restarten



weightwatcher
06.11.05, 21:49
Hi, Leute. ich bin gerade dabei, mir ein kleines Programm in PHP zu programmieren, welches mir alle installierten dienste und deren Satstus dazu ausgibt. Also z.B. Apache 2: running.
Funktioniert auch alles soweit. Nun will ich noch eine kleine erweiterung programmieren, mit welcher ich die Dienste starten, stoppen und neustarten kann.

So hab jetzt mal was gebastelt Very Happy .
Funktioniert aber nicht.



<?php

system("/etc/init.d/apache2 stop");

?>



Die error.log des Apachen liefert folgendes:



/etc/init.d/apache2: line 103: kill: (7747) - Operation not permitted


und im Browser sagt mir des Script:


* Stopping web server (Apache2)... ...fail!


Was issen da jetzt noch falsch ? Vll. die Rechte ?
ist ein Debianserver, somit läuft der Apache mit www-data.
chmod der Datei ist 777, chown ist root.

Danke schonmal im Voraus.
MfG Dennis aka weightwatcher

derRichard
06.11.05, 22:10
hi!

denk doch mal nach, der apache rennt als user www-data.
und dienste starten und stoppen darf nur root...
du musst den befehl als root ausführen.
zb. per sudo. system("sudo /etc/init.d/....").
in der /etc/sudoers legst fest, dass der user www-data das darf...

//richard

webmaster128
07.11.05, 14:39
würde das mit dem sudo denn funktionieren?
man gibt dann doch garkein root passwort ein, oder?

weightwatcher
07.11.05, 20:52
jo, des geht nämlich nit, der will ein Passwort.
Wenn cih jetzt jedoch alles nach der 'man sudo' eintragen würde, pw und alles, dann würde doch eine Sicherheitslücke entstehen.
Gibt es nicht eine andere Möglichkeit per sudo oder su das Passwort gleich mitzugeben also z.B.



<?php
system ("sudo passwort /etc/init.d/apache2 stop");

oder halt
system ("su passwort /etc/init.d/apache2 stop");
?>


Eine andere möglichkeit sehe ich im Mom nit.
Kann mir jemand helfen ? MfG und Danke schon mal im Voraus.
Dennis aka badenzer

derRichard
07.11.05, 20:55
hallo!

schonmal die manpage von sudo gelesen?
sicher nicht, weil sont würdest wissen wie es geht.

zb (in der /etc/sudoers):
www-data <hostname> = NOPASSWD: /etc/init.d/apache2 stop

//richard