PHP5 - exec, bzw. shell-exec verweigert

PHP5 - exec, bzw. shell-exec verweigert

am 26.05.2006 12:18:51 von Irmgard Schwenteck

Hallo,
muß man denn bei PHP5 noch irgendwelche DLLS freigeben/nachinstallieren,
damit shell-Befehle ausgeführt werden können?

Konfiguration Win2003 Server, IIS6, PHP5
ist PHP als ISAPI installiert, kommen die Fehlermeldungen "unable to
fork" bzw. "unable to execute"

ist PHP als CGI installiert, kommt "CGI-Fehler; Die angegebene
CGI-Anwendung hat keinen vollständigen Satz von HTTP-Headern zurückgegeben."

Daß es an Berechtigungen fürs Internetdienstekonto IUSR liegt, halte ich
inzwischen nicht mehr für wahrscheinlich, deshalb die Frage, ob nicht
doch dem PHP was felt.

Unter PHP4 funktioniert dasselbe einfach.

Gruß
Irmgard

Re: PHP5 - exec, bzw. shell-exec verweigert

am 14.06.2006 11:56:48 von Joerg Behrens

Irmgard Schwenteck schrieb:
> Hallo,
> muß man denn bei PHP5 noch irgendwelche DLLS freigeben/nachinstallieren,
> damit shell-Befehle ausgeführt werden können?

[..]

> Daß es an Berechtigungen fürs Internetdienstekonto IUSR liegt, halte ich
> inzwischen nicht mehr für wahrscheinlich, deshalb die Frage, ob nicht
> doch dem PHP was felt.

Ich bin doch der Meinung das es daran liegt da der IUSR keine Rechte an
der cmd.exe hat und per default fuer alle Rechte ein DENY gesetzt ist.
Schau die nochmal die Rechte fuer die cmd.exe and setze explizit
Lesen/Ausführen und entferne das DENY.

> Unter PHP4 funktioniert dasselbe einfach.

Tja... frueher war alles besser :)

> Gruß
> Irmgard

Gruss
Joerg

--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025

Re: PHP5 - exec, bzw. shell-exec verweigert

am 14.06.2006 12:34:28 von Ray Banana

* Joerg Behrens wrote:
> Irmgard Schwenteck schrieb:
>> Hallo,
>> muß man denn bei PHP5 noch irgendwelche DLLS freigeben/nachinstallieren,
>> damit shell-Befehle ausgeführt werden können?
>> Daß es an Berechtigungen fürs Internetdienstekonto IUSR liegt, halte ich
>> inzwischen nicht mehr für wahrscheinlich, deshalb die Frage, ob nicht
>> doch dem PHP was felt.
> Ich bin doch der Meinung das es daran liegt da der IUSR keine Rechte an
> der cmd.exe hat und per default fuer alle Rechte ein DENY gesetzt ist.
> Schau die nochmal die Rechte fuer die cmd.exe and setze explizit
> Lesen/Ausführen und entferne das DENY.

In der php.ini gibt es einen Eintrag, der aus Sicherheitsgründen
so aussehen sollte:

disable_functions = show_source, system, shell_exec, passthru, exec,
phpinfo, popen, proc_open

Das verhindert die Ausführung von shell-Befehlen.

--
HUMLET, JOHAN, MC COOL:::: bringin da PFFFFFFFT BACK 2 POSENET!!!!!!!!
http://news.motzarella.org

Re: PHP5 - exec, bzw. shell-exec verweigert

am 14.06.2006 15:35:54 von Joerg Behrens

Ray Banana schrieb:
> * Joerg Behrens wrote:
>> Irmgard Schwenteck schrieb:
>>> Hallo,
>>> muß man denn bei PHP5 noch irgendwelche DLLS freigeben/nachinstallieren,
>>> damit shell-Befehle ausgeführt werden können?
>>> Daß es an Berechtigungen fürs Internetdienstekonto IUSR liegt, halte ich
>>> inzwischen nicht mehr für wahrscheinlich, deshalb die Frage, ob nicht
>>> doch dem PHP was felt.
>> Ich bin doch der Meinung das es daran liegt da der IUSR keine Rechte an
>> der cmd.exe hat und per default fuer alle Rechte ein DENY gesetzt ist.
>> Schau die nochmal die Rechte fuer die cmd.exe and setze explizit
>> Lesen/Ausführen und entferne das DENY.
>
> In der php.ini gibt es einen Eintrag, der aus Sicherheitsgründen
> so aussehen sollte:
>
> disable_functions = show_source, system, shell_exec, passthru, exec,
> phpinfo, popen, proc_open
>
> Das verhindert die Ausführung von shell-Befehlen.
>

1. Der Eintrag sollte so aussehen sofern der Admin das wollte
2. Eine Verletzung der DISABLE_FUNCTIONs erzeugt eine eindeutige
Fehlermeldungen, aber nicht die welche Irmgard gepostet hatte.

Gruss
Joerg

--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025

Re: PHP5 - exec, bzw. shell-exec verweigert

am 21.09.2006 11:13:32 von Irmgard Schwenteck

Hallo

Joerg Behrens schrieb:

>> Daß es an Berechtigungen fürs Internetdienstekonto IUSR liegt, halte
>> ich inzwischen nicht mehr für wahrscheinlich, deshalb die Frage, ob
>> nicht doch dem PHP was felt.
>
> Ich bin doch der Meinung das es daran liegt da der IUSR keine Rechte an
> der cmd.exe hat und per default fuer alle Rechte ein DENY gesetzt ist.
> Schau die nochmal die Rechte fuer die cmd.exe and setze explizit
> Lesen/Ausführen und entferne das DENY.


Sorry für späte Antwort meinerseits - ich hatte länger nicht mehr hier
veorbeigeschaut. Das betroffene System ruhte dann erst einmal
monatelang, bis der Kunde es aus dem Testbetrieb aktivieren wollte.
Dann wurde sowieso noch einmal alles neu installiert, und diesesmal als
CGI-Version, weil der Win2003 Server mit IIS6 und ISAPI-Modulen beim
Hochfahren eine Fehlermeldung bringt
(http://support.microsoft.com/kb/892988/de)

Ich hab dann nach der Fehlermeldung "Die angegebene CGI-Anwendung hat
keinen vollständigen Satz von HTTP-Headern zurückgegeben." gegoogelt,
aber die Hinweise, man solle doch zusätzliche Header senden, halfen nicht.

Inzwischen hab ich das Problem durch eine passende Fehlerbehandlung im
PHP gelöst.
Es ging darum, daß von Freigaben auf entfernten Rechnern Dateien kopiert
werden sollen. Sind diese aus $gründen nicht erreichbar, gibt es Fehler.
Durch ein "ping" vorneweg sollte einfach getestet werden, ob der Rechner
überhaupt erreichbar ist, das geht außerdem fix. Mit Warten auf den
PHP-Fehler dauert es etwas länger, das stört aber nicht.

Gruß
Irmgard