Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
sudo macht gar nix [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
sudo macht gar nix


 
sagg
03-11-2005, 15:20 
 
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?

 
sagg
03-11-2005, 16:35 
 
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' ...

 
sagg
03-11-2005, 17:24 
 
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?

 
sagg
03-11-2005, 22:14 
 
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.

 
sagg
03-11-2005, 23:28 
 
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. :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:35 Uhr.