shell_exec will nicht funktionieren

Original von odigo
Ein kleines chown auf /root usw hilt auch wahre Wunder :D
Und reißt eine potentielle Sicherheitslücke in's System. Da wäre dann selbst die sudo-Lösung noch brauchbarer.

Original von odigo
Da will sicher keiner irgendwelche Pakete installieren.

Es ist aber auch auf den wenigsten Webservern GnuPG installiert.
 
Original von odigo
Ähm chroot sagt mir nicht viel. Ich starte den Webserver halt als root in der shell.
Vielleicht solltest du mal versuchen, den Webserver nicht als root, sondern als www zu starten...
 
Original von Eydeet
Vielleicht solltest du mal versuchen, den Webserver nicht als root, sondern als www zu starten...

Das wird nichts, da nur root ein Programm an einen Port unter 1024 binden kann und ein Webserver läuft bekanntermaßen auf Port 80.
 
Hallo,
Original von bitmuncher
Wenn das auch nicht hilft, müsstest du den Safe-Mode von PHP deaktivieren und davon würde ich abraten
http://de.php.net/manual/de/function.shell-exec.php
Anmerkung: Diese Funktion steht im Safe Mode nicht zur Verfügung.

Mein Tipp:
Safe Mode anstellen, dann in der php.ini einen speziellen Ordner festlegen (safe_mode_exec_dir), in dem PHP Programme aufrufen darf (dieser Ordner sollte leer sein;) ), dann in dem Ordner ein Programm reinkopieren, welches dir 'gpg --list-keys' aufruft und entsprechend stdout an stdout weitersendet.

In PHP dann per system('mein_eigenes_prog') das Programm aufrufen, schon hast du die Ausgabe von gpg, und dass ohne Risiken von Safe Mode=off.
 
@Elderan: Das ist nicht das eigentliche Problem, aber gut zu wissen. Das werde ich dann auch noch umsetzen. Ich habe gerade in der php.ini geschaut, der safe mode ist auf off (anscheinend default bei Lampp). Das Problem ist daß gpg auf die gpg.conf im /root-Verzeichnis zugreifen will obwohl der ausführende User www ist. Die gpg.conf ist eh merkwürdig. Ich habe mal auf meinem Laptop wo gpg auch läuft nach der gpg.conf gesucht, dort ist keine zu finden, auch nicht in den home-Verzeichnissen der User. Ich habe aber gpg auf meinem Server auch nicht anders installiert als auf meinem Laptop (yum install gpg). Der Unterschied ist wohl nur ein kleiner Versionsunterschied 1.4.5 zu 1.4.7 bei gpg und bei Fedora Core 4 zu 6.
Kann es was ausmachen daß zu dem Zeitpunkt als ich gpg installiert habe den User www noch gar nicht gab?

Gruß odigo

Edit: Ich glaub ich habs :D
PHP:
putenv("GNUPGHOME=/home/www/.gnupg");
Hilft wahre Wunder :P
Ich hoffe das wars. Aber wenigstens habe ich heute und letzte Nacht jede Menge dazugelernt. Das macht das ganze nicht mehr ganz so schlimm.
 
Original von odigo
Kann es was ausmachen daß zu dem Zeitpunkt als ich gpg installiert habe den User www noch gar nicht gab?

Nur zur Info: Das macht im Normalfall nichts aus, da die user-spezifische Konfiguration von GnuPG erst beim ersten Aufruf des Programms im Home-Verzeichnis angelegt wird.

Und danke für die Lösung. Das hätte ich auch nicht gewußt. Damit hast also nicht nur du etwas dazu gelernt. :)
 
Zurück
Oben