Hallo,
ich habe in der sudoers folgendes stehen:
web12 ALL=(root) NOPASSWD: ALL
(natürlich nur zum Test so viele Rechte ;))
in einer php-Datei, welche 777 Rechte hat und direkt aufgerufen wird (sprich nicht irgendwo includet, etc.) steht lediglich
<?php
echo system("sudo -u web12 ls");
?>
Normal solte er doch jetz ausgeben, was der selbe Befehl auch in der Shell bringt?!
Er bringt allerdings gar nichts. Woran liegt das?
Bei der Suche konnte ich leider keine Lösung finden.
Danke schonmal.
onemorenerd
03-11-2005, 16:08
http://de2.php.net/manual/en/function.exec.php#56274
Hoffentlich hilfts.
Was hast du denn vor?
Danke,
das habe ich auch schon gelesen, aber irgendwie verstehe ich den Ablauf der Funktionen nicht ganz, bzw wie letztendlich die Datei gestartet wird.
Ich möchte lediglich ein anderes php-Script in der Shell ausführen,.
onemorenerd
03-11-2005, 16:56
Einfach 'echo hello world' durch dein Kommando ersetzen.
Etwa '/pfad/zu/php /pfad/zu/deinem/script.php' ...
Also ich habe jetz in der der einen Datei
<?php
passthru('php /srv/www/htdocs/web12/html/soft/bot/index.php | sudo -u root php -f /home/bot.php');
?>
(per shell gehts)
Und in der anderen (/home/bot.php)
<?php
echo join('',file('php://stdin'));
?>
So richtig? weil funktionieren tut es trotzdem nicht. :cool:
onemorenerd
03-11-2005, 21:39
Wenn du es in der Shell ausführen kannst, ist das schonmal schön. Aber der User, unter dem dein Webserver (web12???) läuft, darf das vielleicht nicht. Hast du deine sudoers angepaßt wie in dem Beispiel?
Was sagt das Logfile?
Original geschrieben von onemorenerd
Aber der User, unter dem dein Webserver (web12???) läuft, darf das vielleicht nicht. Hast du deine sudoers angepaßt wie in dem Beispiel?
wwwrun steht auch mit in der sudoers
web12 ALL=(ALL) NOPASSWD: ALL
www ALL=(ALL) NOPASSWD: ALL
Original geschrieben von onemorenerd
Was sagt das Logfile?
Da muss ich erstmal schauen wo die waren.
Bin fast ein ganzes Jahr aus dem geschehen rausgerissen worden, da läuft das nicht mehr alles so flüssig. :D
edit: in der "messages" wird gar nix eingetragen
onemorenerd
03-11-2005, 23:04
Hat wwwrun bzw. web12 möglicherweise nicht das Environment, wie du es hast? Ich meine weiß die Shell dieses/r User/s wo php liegt?
Versuchs doch erstmal mit etwas einfachem wie echo oder ls.
hm, aber wenn ich als User web12 oder wwwrun den Befehl "php ...." eingebe, und das Script wird gestartet, dann sollte es doch akzeptiert werden, oder?
Per "echo ls" kam übrigends auch nix.
*edit*
Toll, in der php.ini ist safe_mode = off, trotzdem ist er "on".
Kann es vlt. daran liegen?
system, exec und so weiter werden ja auch durch safe_mode beeinflusst.
Ich spiel mal bischen rum. ;)
*edit*
Wie ich es hasse, wenn man alles doppelt und dreifach sagen (in dem Fall eher schreiben) muss.
Nachdem ich in der httpd.conf noch
php_admin_flag safe_mode off
php_admin_value open_basedir none
hinzugefügt habe, geht es nun endlich.
Danke dir für deine Gedult und die Tipps. :)