Toledo: chmod via PHP tut nicht...

hallo ihr,

ich versuche in PHP mittels chmod() die rechte eines ordners auf 777 zu setzen um ihn in weiterer folge mittels rename() zu verschieben.

der sinn dahinter ist, dass user mit eigenem login fotos auf den server stellen können, welche nach entsprechendem eintrag in der datenbank und freigabe durch den admin in den öffentlichen bereich verschoben werden.

mein problem: der hochgeladene ordner lässt sich per PHP befehl nicht chmod´en. in FTP wäre das ändern der rechte kein problem, aber das muss doch auch per PHP funktionieren??

ratlose grüsse,
toledo

  1. Hallo.

    mein problem: der hochgeladene ordner lässt sich per PHP befehl nicht chmod´en. in FTP wäre das ändern der rechte kein problem, aber das muss doch auch per PHP funktionieren??

    Wie lautet die Fehlermeldung? error_reporting E_ALL?

    MfG, Kungschu.

    --
    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
  2. Hi,

    ich versuche in PHP mittels chmod() die rechte eines ordners auf 777 zu setzen um ihn in weiterer folge mittels rename() zu verschieben.

    Wie sieht denn dein Code dazu aus? Wie soll man dir ohne diesen sagen, was du falsch machst?

    Im Manual steht, dass man die Rechte Oktal (also mit 0 am Anfang) angeben soll, weil es sonst möglicherweise zu Fehlern kommt. Hast du das gemacht?

    mfG,
    steckl

    1. CODE:
      chmod("members/folders/".$member_id."/bilder/".$ordnername, 0777);
      sämtliche folder sind auf 777, nur der manuell hochgeladene ($ordnername) ist auf 755. und das bleibt er auch dummerweise.

      FEHLERMELDUNG:
      Warning: chmod(): Operation not permitted in /home/www/web5/html/members/incs/fotoupload/step2.inc.php on line 61

      1. Hi,

        CODE:
        chmod("members/folders/".$member_id."/bilder/".$ordnername, 0777);
        sämtliche folder sind auf 777, nur der manuell hochgeladene ($ordnername) ist auf 755. und das bleibt er auch dummerweise.

        Gehört der Ordner dem selben User, der auch von PHP benutzt wird?
        Zumindest den Unix-Befehl chmod kann nur der Besitzer einer Datei und Root ausführen.

        Siehe Link von vorhin:
        "Anmerkung:  Der aktuelle Benutzer ist der, unter dem PHP läuft. Das ist unter Umständen nicht der Benutzer, den Sie für normale Shell- oder FTP-Zugriffe benutzen."

        mfG,
        steckl

        1. Gehört der Ordner dem selben User, der auch von PHP benutzt wird?
          Zumindest den Unix-Befehl chmod kann nur der Besitzer einer Datei und Root ausführen.

          tja, da haben wir das problem... das geht nicht wirklich, da es sich um mehrere verschiedene user handelt. aber egal, ich hab das mittlerweile anders gelöst (etwas unelegant, aber effektiv: wenn die user per FTP hochladen können, können sie ja auch gleich händisch auf 777 setzen - ist ein handgriff mehr)

          danke jedenfalls :-)

          1. Hi,

            tja, da haben wir das problem... das geht nicht wirklich, da es sich um mehrere verschiedene user handelt. aber egal, ich hab das mittlerweile anders gelöst (etwas unelegant, aber effektiv: wenn die user per FTP hochladen können, können sie ja auch gleich händisch auf 777 setzen - ist ein handgriff mehr)

            Alternativ wäre auch ftp_chmod() möglich.

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Hi,

          Zumindest den Unix-Befehl chmod kann nur der Besitzer einer Datei und Root ausführen.

          Nein, es kann ihn jeder ausführen, der die nötigen Schreibrechte besitzt.

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          1. Hi,

            Zumindest den Unix-Befehl chmod kann nur der Besitzer einer Datei und Root ausführen.

            Nein, es kann ihn jeder ausführen, der die nötigen Schreibrechte besitzt.

            Hast du das mal ausprobiert?
            Ich kanns grad net testen, aber hier und hier steht was anderes. Ausserdem war ich mir auch relativ sicher.

            mfG,
            steckl

            1. Hallo steckl.

              Zumindest den Unix-Befehl chmod kann nur der Besitzer einer Datei und Root ausführen.

              Nein, es kann ihn jeder ausführen, der die nötigen Schreibrechte besitzt.

              Hast du das mal ausprobiert?
              Ich kanns grad net testen, aber hier und hier steht was anderes. Ausserdem war ich mir auch relativ sicher.

              Deine Quellen stimmen; nur der Besitzer einer Datei und root können die Zugriffsberechtigungen ändern.

              Einen schönen Donnerstag noch.

              Gruß, Mathias

              --
              ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
              debian/rules
              1. Hallo nochmal.

                Zumindest den Unix-Befehl chmod kann nur der Besitzer einer Datei und Root ausführen.

                Nein, es kann ihn jeder ausführen, der die nötigen Schreibrechte besitzt.

                Hast du das mal ausprobiert?
                Ich kanns grad net testen, aber hier und hier steht was anderes. Ausserdem war ich mir auch relativ sicher.

                Deine Quellen stimmen; nur der Besitzer einer Datei und root können die Zugriffsberechtigungen ändern.

                *grummel* Cybaer hat auch nichts Gegenteiliges behauptet; er schrieb nur, dass jeder das chmod-Kommando nutzen kann.

                Einen schönen Donnerstag noch.

                Gruß, Mathias

                --
                ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                debian/rules
            2. Hi,

              Hast du das mal ausprobiert?

              Mach ich ständig! Aber trotzdem ...

              Ich kanns grad net testen, aber hier und hier steht was anderes. Ausserdem war ich mir auch relativ sicher.

              ... hatte ich Unrecht und Wikipedia Recht! :-o

              Grund: Mein PHP-Basis-Bibliothek, die ich für alles verwende, hat keine Probleme damit, sowohl die Dateirechte bei Dateien des "PHP-Users", als auch die des FTP-Users zu ändern. Ggf. wird intern halt automatisch ftp_chmod benutzt! :-) Ich krieg das gar nicht mehr mit, warum es klappt, was ich machen möchte - es klappt halt. ;->

              Und in meinem Alter wird es halt langsam schwierig, sich an all das zu erinnern, was man mal zur Arbeitserleichterung so alles programmiert hat ... =;-))

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  3. Hallo Toledo.

    ich versuche in PHP mittels chmod() die rechte eines ordners auf 777 zu setzen um ihn in weiterer folge mittels rename() zu verschieben.

    Wenn du das vorhast, brauchst du aber Schreibrechte für das übergeordnete Verzeichnis. Dort wird das Umbennen schließlich vorgenommen.

    mein problem: der hochgeladene ordner lässt sich per PHP befehl nicht chmod´en.

    Bitte: „Die Rechte lassen sich nicht ändern.“

    in FTP wäre das ändern der rechte kein problem,

    Geht doch.

    aber das muss doch auch per PHP funktionieren??

    Muss nicht, da du als FTP-User sicher eine andere Nutzerkennung hast, als PHP, welches die Kennung des Apachen annimt.

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules