PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell exec() [PHP] Linux


ne0
2004-01-15, 16:15:38
hi

ich versuche ein serverprozess unter linux über den apache zu starten/stoppen mit hilfe von php shell_exec()

dazu habe ich erstmal in der apache config
user user1
group root
gemacht.
dann die auszufürende datei auf 777 (testweise)

dann der code

<?php
$t = shell_exe("/home/user1/test start,$results,$status");
echo($t);
echo($result);
echo($status);
?>


/home/user1/test start geht auf der shell sehr gut

das script ansich gibt mir auch das erfolgreiche starten aus, der prozess ist aber auf shell nicht gestartet :(

ich weiss echt langsam nicht mehr weiter warum es nicht geht

cat /home/user1/test zB geht wunderbar, er zeigt mir den inhalt der datei an

ping zB geht auch

ich habe es auch mit exec() und system() probiert, geht auch nicht :(

wenns in webdesign besser aufgehoben ist -> bitte verschieben

thx
ne0

gentoo
2004-01-16, 17:21:07
Hast du schon probiert als user1 dieses
Programm zu starten.

su user1
php test.php

ne0
2004-01-16, 19:05:04
geht auch nicht :(

ich konnte über deine methode ein ordner erstellen, mehr aber auch nicht :/

gentoo
2004-01-16, 21:24:41
Bist du dir sicher, daß du user1 in die
gruppe root auch unter linux hinzugefügt hast.

Denn anscheinend fehlen dir die Rechte dazu.

Schau mal im log-file nach.
Dort steht es meistens, wo der Fehler liegt.

killermaster
2004-01-17, 06:52:23
was passiert das wenn du als root das script ausführst?

ne0
2004-01-17, 11:13:15
uii das geht :)

hmm aber wie bekomme ich das jetzt über mein php script ausgeführt? also wenn ich in der shell: php script.php mache und als root angemeldet bin, klappt es, das heisst das phpscript an sich ist in ordnung oder nicht? aber wie kann ich das jetzt im browser laufen lassen? ich kann ja nicht den apache als root laufen lassen..

ne0

killermaster
2004-01-17, 11:56:30
dann schreib n shell script so

su
php <pfad zu der datei>

:D

ne0
2004-01-17, 12:17:28
tjo, aber das bekomme ich ja dann auch nicht ausgeführt über php :/

killermaster
2004-01-17, 12:43:35
scheiße.
LOL
keine ahnung woran das liegen könnte

chmod vielleicht ?

mfg

ne0
2004-01-17, 13:22:45
moment mal das is doch schwachsinn, ich soll ne php datei schreiben die eine andere php datei ausführt? :freak:

wie wäre es wenn ich
exec("su root/npasswort123/nsh /home/user1/test")

mache?

killermaster
2004-01-17, 14:45:53
nee
ich hab gesagt
du sollst eine shell datei schreiben
:-)

mfg

ne0
2004-01-17, 16:34:52
tjo aber die müsste ich doch dann auch wieder über eine weiter php datei ausführen..es geht ja darum das man auf einer website einen prozess startet/stoppt

ne0
2004-01-17, 20:13:13
ok ich habs jetzt soweit das ich die php datei ausführen will, es kommt aber

Warning: Unknown(): open_basedir restriction in effect. File(/home/user1/php.php) is not within the allowed path(s): (/srv/www/htdocs/web1/) in Unknown on line 0

Kant
2004-01-18, 17:02:08
Original geschrieben von ne0
ok ich habs jetzt soweit das ich die php datei ausführen will, es kommt aber

Warning: Unknown(): open_basedir restriction in effect. File(/home/user1/php.php) is not within the allowed path(s): (/srv/www/htdocs/web1/) in Unknown on line 0

Du musst deine php.ini anpassen um die Ausfuehrung in anderen Verz. zu erlauben.
Alternativ kannst du auch auf die Version mit dem bash-script zurückgreifen. (Das bash-script muss dann nur in dem Verz liegen, das freigegeben ist. Wenn dieses bash-script aber etwas aufruft, greift die openbasedir-restriktion nicht mehr.)
Edit : Aber nur, wenn das "Ziel-Script" kein php ist ...

killermaster
2004-01-18, 17:21:22
mehr optionen = größere angriffsfläche & möglicherweise sicherheitslücke

;D