PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl über PHP auführen



phoku
02.09.03, 17:28
Hallo,

wie kann ich aus PHP einen Befehl als root ausführen, z.b. "webalizer -Q"???

$kuLL
02.09.03, 17:35
shell_exec("cmd");

phoku
02.09.03, 17:52
Komisch, der Befehl ist in meinem Buch (PHP4, Hanser) gar nicht dokumentiert.

bernie
02.09.03, 18:04
Hi,

das hilft wohl nur ein Blick auf: www.php.net

Ciao, Bernie

phoku
03.09.03, 00:09
HI,
das funktioniert so leider nicht :(

<?
if ($schalter) {
echo "<br>should be on";
shell_exec("./schalt 1");
} else {
echo "<br>should be off";
shell_exec("./schalt 0");
}
?>
Das echo wird angezeigt, das if funktioniert also. Und die Befehle ./schalt 0 und ./schalt 1 funktionieren als root auch.

Woran kann das liegen? Hab ich mit shell_exec rechte als root?

zwerg
03.09.03, 00:45
Führ das Ganze doch mal so aus:
$output = shell_exec("./schalter 1 2>&1");
echo $output;dann bekommst auch deine Error-Message. Wenn der die Datei nicht findet, nicht vergessen, du bist in dem Verzeichnis des PHP-Skripts.
Wenn du keine Berechtigung hast, führt dein PHP deine Befehle wohl nicht als root aus (wieso auch?)
Bei mir führt der die Befehle als www-data aus, dürfte bei dir auch der Fall sein, zu überprüfen mit
$output = shell_exec("whoami");
echo $output;
ist eigentlich auch vernünftig so..! Was macht denn dein Schalter? Falls du in dem Shellkript wirklich was machen willst, was nur root kann, dann bau da nen sudo command ein, das lindert schonmal das Sicherheitsrisiko, als wenn du das ins PHP-Skript einbaust..! ;)

zwe 'hat in XSS aufgepasst' rg