Peter: PHP 777 fopen(w) nein -- exec(Touch ..) ja ??

Erklär mir mal jemand warum ich mit php (in was auch immer für einer blöden fcgi suexec Konfiguration) in einem 777 Verzeichniss keine neue Datei mit fopen oder sonstigen PHP funktionen anlegen kann, aber mit exec(touch ... ) dann schon? Ich verstehs grad nicht wirklich. Mal wieder Stunden umsonst *grumml*

lg

  1. n'abend,

    Erklär mir mal jemand warum ich mit php (in was auch immer für einer blöden fcgi suexec Konfiguration) in einem 777 Verzeichniss keine neue Datei mit fopen oder sonstigen PHP funktionen anlegen kann, aber mit exec(touch ... ) dann schon? Ich verstehs grad nicht wirklich. Mal wieder Stunden umsonst *grumml*

    umask?
    Eltern-Verzeichnisse haben fehlt das X (rwxr-xr-x)

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. n'abend,

      Erklär mir mal jemand warum ich mit php (in was auch immer für einer blöden fcgi suexec Konfiguration) in einem 777 Verzeichniss keine neue Datei mit fopen oder sonstigen PHP funktionen anlegen kann, aber mit exec(touch ... ) dann schon? Ich verstehs grad nicht wirklich. Mal wieder Stunden umsonst *grumml*

      umask?

      Was für einen Sinn soll umask bei einem gechmodeden 777 Verzeichniss haben? Funktioniert übrigens auch nach Test nicht? X ist auch bei den Eltern gesetzt. Hab testhalber alles darunter auf 777 gehabt, mit dem selben Effekt. Der "Hund" muß hier wo anderst begraben sein. exec wird ja unter suexec im selben Modus ausgeführt wie fopen. Da werden ja auch die richtigen Beuntzerrechte des ausführenden VHOSTs gesetzt. Mir ist das noch immer ein Rätsel warum eine PHP funktion wie fopen( ...,w) das dann nicht kann, denn  sollte ja eigentlich in jedem Fall mit den selben Rechten arbeiten. Fopen kann nur schreiben bei einer bereits angelegten Datei, aber keine neue anlegen.

      lg

      1. Hallo Peter,

        Deinen Beitrag hatte ich mir auch durchgelesen, aber nicht geantwortet. suEXEC hat mich auch schon mehrfach zur Verzweiflung gebracht, wobei ich nie wirklich dahinter kam, wo denn nun tatsächlich der Grund für bestimmtes, unerwartetes Verhalten lag. Daher ist es schwer, ohne wirklich alle Details zu kennen, (ja eigentlich) Mutmaßungen auszusprechen, in der Hoffnung sie könnten doch irgendwie hilfreich sein.

        Was für einen Sinn soll umask bei einem gechmodeden 777 Verzeichniss haben? Funktioniert übrigens auch nach Test nicht? X ist auch bei den Eltern gesetzt. Hab testhalber alles darunter auf 777 gehabt, mit dem selben Effekt. Der "Hund" muß hier wo anderst begraben sein. exec wird ja unter suexec im selben Modus ausgeführt wie fopen. Da werden ja auch die richtigen Beuntzerrechte des ausführenden VHOSTs gesetzt. Mir ist das noch immer ein Rätsel warum eine PHP funktion wie fopen( ...,w) das dann nicht kann, denn  sollte ja eigentlich in jedem Fall mit den selben Rechten arbeiten. Fopen kann nur schreiben bei einer bereits angelegten Datei, aber keine neue anlegen.

        fopen() für sich hat (ober besser: sollte haben) nichts mit suEXEC zutun. Da taucht sicher nicht nur bei Dir das erste Fragezeichen auf. Den der eigentliche Weg ist ja der, dass suEXEC einen Prozess unter bestimmten Voraussetzungen mit einem vordefinierten Systemnutzer ausführt. Etwaige Konstellationen, dass das auszuführende Script nicht den selben Nutzer wie das Verzeichnis hätte, könnten suEXEC zwar interessieren, jedoch übernimmt suEXEC keinerlei Kontrolle mehr, was das Script dann macht. Diese Prüfungen sind nur für das Ausführen des Scriptes von Belang. Offensichtlich verlaufen die Prüfungen allesamt positiv, denn Dein Script wird ausgeführt.

        Allerdings muss ich sagen, fällt eine Sache hier auf, die für mein Verständnis nicht sorecht zusammenpassen mag. suEXEC bedient Programme via CGI. Du schriebst eingangs etwas von FastCGI. Die Prozesse (PHPs) sind also alle schon am Laufen. Ich weiß nicht, ob suEXEC überhaupt in der Lage ist, diese Prozesse in UID und GID zu beeinflussen. Jedoch stört sich das nicht an der Überlegung, dass hier PHP nicht erwartungsgemäß arbeitet. Wie kurz angerissen, suEXEC hat auf die Scriptausführung keinerlei Auswirkungen, tut PHP nicht, was es soll.

        Gruß aus Berlin!
        eddi