Archiv verlassen und diese Seite im Standarddesign anzeigen : shell exec() [PHP] Linux
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
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?
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
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
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
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
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
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
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.