Hackerboard WikiHaboBlog

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

shell_exec will nicht funktionieren

Diskussion: shell_exec will nicht funktionieren im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Hallo, ich habe ein hoffentlich kleines Problem mit PHP. Und zwar wollen die folgenden Zeilen beim besten Willen funktionieren: PHP-Code: ...

Antwort
Alt 20.06.07, 22:40   #1 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard shell_exec will nicht funktionieren


Hallo,

ich habe ein hoffentlich kleines Problem mit PHP. Und zwar wollen die folgenden Zeilen beim besten Willen funktionieren:

PHP-Code:
$ausgabe shell_exec('gpg --list-keys');
echo 
$ausgabe
Dagegen funktioniert das schon:
PHP-Code:
$ausgabe shell_exec('date');
echo 
$ausgabe
Ich verstehs einfach nicht.

Jemand eine Idee?

Gruß odigo
odigo ist gerade online   Mit Zitat antworten
Alt 20.06.07, 22:43   #2 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Mal mit exec() versuchen. Wenn das nicht hilft, dann mal den kompletten Pfad zum gpg angeben.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 20.06.07, 22:54   #3 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Geht leider beides nicht ?(

Edit: Habs gerade mit gpg --help probiert. Da bekomm ich die letzte Zeile der Hilfe. Kann es irgendein Problem sein wegen der mehrzeiligen Ausgabe von gpg?
odigo ist gerade online   Mit Zitat antworten
Alt 20.06.07, 23:07   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Bekommst du den Output auch dann nicht, wenn du den Befehl in Backticks einschließt?

Code:
$ausgabe = `gpg --list-keys`;
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 20.06.07, 23:18   #5 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Irgendwie hab ich jetzt nicht ganz verstanden was du willst. Im ersten Posting hab ich mich etwas vertan. Ich habs natürlich so:
PHP-Code:
$ausgabe exec("gpg --list-keys");
echo 
$ausgabe
Also keien Backticks sondern Anführungszeichen.
strlen sagt übrigens auch daß in ausgabe nichts drin ist.
Nur bei --help bekomm ich die letzte Zeile der Hilfe. Versteh ich nicht.
odigo ist gerade online   Mit Zitat antworten
Alt 20.06.07, 23:23   #6 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Ich meine es so, wie ich es geschrieben habe:

Code:
$ausgabe = `gpg --list-keys`;
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 20.06.07, 23:27   #7 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Ich glaube ich steh auf der Leitung.
Also bei:
PHP-Code:
<?php $ausgabe exec("gpg --list-keys");
echo 
$ausgabe?>
nix
bei:
PHP-Code:
<?php $ausgabe exec('gpg --list-keys');
echo 
$ausgabe?>
nix
bei:
PHP-Code:
$ausgabe = `gpg --list-keys`;
echo 
$ausgabe
bekomm ich natürlich
Zitat:
gpg --list-keys
aufn Bildschirm

Edit: Was auch merkwürdig ist das wenn ich
PHP-Code:
$ausgabe exec('gpg --list-keys > test'); 
mache bekomme ich nur eine leere Datei namens test
odigo ist gerade online   Mit Zitat antworten
Alt 21.06.07, 00:08   #8 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Zitat:
Original von odigo
bei:
PHP-Code:
$ausgabe = `gpg --list-keys`;
echo 
$ausgabe
bekomm ich natürlich
Zitat:
gpg --list-keys
aufn Bildschirm
Das ist seltsam, denn normalerweise sollte der Output des Programms ausgegeben werden. Unter http://www.bitmuncher.de/test.php habe ich das mal mit '$ausgabe = `gpg --help`;' gemacht. Siehe dazu auch die PHP-Doku:

Zitat:
http://de2.php.net/manual/en/function.shell-exec.php
Description
string shell_exec ( string $cmd )

This function is identical to the backtick operator.
Zitat:
Original von odigo
Edit: Was auch merkwürdig ist das wenn ich
PHP-Code:
$ausgabe exec('gpg --list-keys > test'); 
mache bekomme ich nur eine leere Datei namens test
Hast du den Befehl mal auf der Konsole ausgeführt und zwar mit den Rechten des Webservers? Wenn im Home-Verzeichnis des Webserver-Users (welches das ist, kannst du der /etc/passwd entnehmen und unter welchem User der Webserver läuft, steht in der Webserver-Konfiguration) nämlich keine GPG-Keys sind, bekommst du beim ersten Aufruf etwa folgenden Output:

Code:
gpg: Verzeichnis `/var/www/.gnupg' erzeugt
gpg: Neue Konfigurationsdatei `/var/www/.gnupg/gpg.conf' erstellt
gpg: WARNUNG: Optionen in `/var/www/.gnupg/gpg.conf' sind während dieses Laufes noch nicht wirksam
gpg: Schlüsselbund `/var/www/.gnupg/pubring.gpg' erstellt
gpg: /var/www/.gnupg/trustdb.gpg: trust-db erzeugt
und beim zweiten Aufruf kommt durch das leere Schlüsselbund garkeine Ausgabe.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 21.06.07, 00:38   #9 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Wie bitmuncher schon sagt: schau mal, ob du mit dem Benutzer, unter dem der Webserver läuft, überhaupt die Rechte hast, um gpg auszuführen. Außerdem schau mal, ob gpg irgendwo im $PATH des jeweiligen Nutzers steht (hadder aber auch schon gesagt *g).

Zudem könnte es sein, dass der Webserver in einer chroot-Umgebung läuft und gpg somit gar nicht verfügbar ist. Eine weitere Möglichkeit wäre, dass der Safe-Mode aktiviert ist und die Funktion damit gar nicht funktioniert, wenn du aber in einigen Fällen (wenn auch unerwünschte) Ausgaben bekommst, würde ich das aber eher ausschließen.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 21.06.07, 00:50   #10 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Also, es ist ein Rechteproblem. Wenn ich als User des Webservers gpg ausführe bekomme ich einen Fehler daß er auf /root/.gnupg nicht zugreifen kann.
In der Userverwaltung bin ich nicht so fit, aber ich denke ich bekomm das jetzt hin.
Danke Leute

Gruß odigo
odigo ist gerade online   Mit Zitat antworten
Alt 21.06.07, 00:58   #11 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Der Webserver sucht seine GPG-Konfiguration im root-Home? Du solltest dringend die Sicherheit deines Servers überprüfen, denn dieser dürfte nichtmal auf die Idee kommen seine Konfigurationen im root-Home zu suchen. Oder hast du 'gpg' via 'sudo' aufgerufen? Dann sucht er nämlich automatisch am falschen Ort.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 21.06.07, 01:21   #12 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Ja, habs per sudo aufgerufen. das kann ja nicht gehen.

Hm, wenn ich jetzt als www (mein neuer User fürn Apache) gpg ausführe geht alles, aber aus PHP immer noch nicht. Langsam aber sicher bekomme ich graue Haare.

Gruß odigo
odigo ist gerade online   Mit Zitat antworten
Alt 21.06.07, 01:27   #13 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Zitat:
Original von odigo
Hm, wenn ich jetzt als www (mein neuer User fürn Apache) gpg ausführe geht alles, aber aus PHP immer noch nicht. Langsam aber sicher bekomme ich graue Haare.
"Geht alles"? Er zeigt dir also Keys an? Dann kann ich mir nämlich nur vorstellen, daß der Output von gpg auf STDERR ausgegeben wird anstatt auf STDOUT und ich bin mir nicht sicher, ob PHP das auch "abfängt". In diesem Fall müßtest du jeglichen Output in eine Datei umleiten und dann diese mit PHP öffnen um daraus die Ausgabe zu erhalten

PHP-Code:
<?php $ausgabe exec('gpg --list-keys > test 2>&1'); ?>
oder explizit nur den STDERR umleiten

PHP-Code:
<?php $ausgabe exec('gpg --list-keys 2> test'); ?>
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 21.06.07, 01:41   #14 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Das mit der Umleiterei hab ich gerade gemacht. Die Datei test wo ich Fehlerausgabe hinleite ist vom User und der Group www. Ich bekomme aber immer noch den Fehler daß gpg nach /root/.gnupg zugreifen will. In meiner http.conf steht:
Zitat:
User www
Group www
Das stimmt doch oder?

Edit: Ich glaube langsam aber sicher daß gpg falsch installiert ist. Die gpg.conf liegt tatsächlich unter /root/.gnupg. Wie ich daß aber wieder richtig hinbiege weiß ich nicht.
odigo ist gerade online   Mit Zitat antworten
Alt 21.06.07, 01:55   #15 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Wie sieht denn der Eintrag für den User 'www' in /etc/passwd aus? Und läuft der Webserver in einer chroot-Umgebung?

Edit: Jeder User hat im Normalfall seine eigenen GPG-Konfiguration und seine eigenen Schlüsselbund-Dateien in ~/.gnupg.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » shell_exec will nicht funktionieren
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Miniaturansichten funktionieren nicht Sukram21 Windows 2 26.08.09 20:01
[C++] Hochkommas funktionieren nicht shUnderdog Code Kitchen 8 11.08.06 11:14
Tastenkombinationen funktionieren nicht gTw34k3r Windows 0 11.08.05 11:09
links funktionieren nicht akm1978 Windows 3 19.11.03 06:49
Games funktionieren nicht DesignerX Die Problemzone 6 10.12.02 10:25


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61