mkdir & UserID setzen....

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mkdir & UserID setzen....

    Moin,

    ich erstelle in meinem Skript ein Verzeichnis per mkdir() und möchte als nächsten Schritt dort eine Datei reinkopieren. Nun bekomme ich ein UserID problem. Wie kann ich unter PHP den "chown" des Verzeichnisses ändern ?

    Ciao
    ExeCRabLE

  • #2
    Mit chown?

    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Moin,

      ja ist irgendwie nahliegend

      Ich bekomme nun ein Meldung "chown(): Operation not permitted..."

      Woran kann das nun liegen ???

      Kommentar


      • #4
        Das du bzw. der User unter dem dein Server läuft kein Recht hat die Rechte von Dateien / Verzeichnissen zu ändern.

        Kommentar


        • #5
          Hmmm...

          jetzt wird es verzwickt...

          Wie sollte ich das Problem insgesamt angehen ? Ich würde nur sehr ungerne den Safe-Mode deaktivieren.

          Kommentar


          • #6
            Wenn du den Safe Mode halten möchtest, dann doch aus gewissen Gründen. Die selben sollten dich auch davon abhalten, überhaupt ein Verzeichnis chown-en zu wollen.

            Vielleicht muß der Besitzer gar nicht geändert werden. Erkläre doch mal bitte, was das für ein Verzeichnis ist, welchen Zweck es hat usw.
            Eine Datei reinkopieren kannst du nämlich auch mit der original-UID.

            Kommentar


            • #7
              Ich möchte Bilder per Upload in eine Verzeichnisherachie ablegen. Die Verzeichnisse werde je nach Bedürfniss erstellt.

              Mein Upload root verzeichnis ist "/medien/bilder/"

              Jetzt soll nach User-ID und Bilder-Nr. ein verzeichniss im Uploadverzeichnis erstellt werden.

              "/medien/bilder/user/bildernr/"

              Bei dem Anlegen der Verzeichnisse "User" und "Bildernr" habe ich ein Berechtigungsproblem bzw. Das Anlegen geht aber der Upload der Bilder dann nicht mehr.

              Muss ich zuvor den User wechseln um einen Upload zufahren, oder ähnliches ?

              Kommentar


              • #8
                Upload über ein HTML-Formular? Dann wird das doch garantiert von einem PHP-Script verarbeitet. Das läuft auch im Safe Mode, auch mit der UID, kann also auch in die (mit selbiger UID) angelegten Ordner schreiben.

                Welche UID würdest du denn sonst auch verwenden wollen? Oder hat jeder User bei dir auch einen Systemaccount? Das wäre die Torpedierung des Safe Mode.

                Falls das Speichern der Bilder nicht klappt, liegt der Fehler vermutlich woanders. Wenn du uns den Code zeigst, finden wir ihn vielleicht.

                Kommentar


                • #9
                  Das Skript legt in einem Rutsch das Verzeichnis an und kopiert dann den upload dort rein.

                  Beim Upload ist aber anscheinend ein anderer User am werk als bei der Verzeichniserstellung.

                  Ich kann das Skript hier nicht reinkopieren aber hier der "Knackpunkt" :

                  PHP-Code:
                  if(!file_exists($savename)){
                          if(!
                  file_exists($ziel.$s_id)){
                          
                  mkdir($ziel.$s_id);
                          }
                          if(!
                  file_exists($ziel.$s_id.'/'.$fileid)){
                          
                  mkdir($ziel.$s_id.'/'.$fileid);
                          }
                      }
                      
                  $r=copy($f_tmpname1,$savename); 

                  Kommentar


                  • #10
                    Dachte ich mir. Schau mal move_uploaded_file() an.

                    Kommentar


                    • #11
                      ?

                      Beim zweiten mkdir() Aufruf, bekomme ich die Meldung :

                      "mkdir(): SAFE MODE Restriction in effect. The script whose uid is 2050 is not allowed to access /........./medien/bilder/userid/10249 owned by uid 33 ..."

                      Ich habe den copy-befehl mit move_uploaded_file() ersetzt.

                      "move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 2050 is not allowed to access /........./medien/bilder/userid/10249 owned by uid 33 ..."

                      Kommentar


                      • #12
                        Typisches Safe-Mode Problem, entweder du deaktivierst den Safe-Mode, lässt php als CGI-Modul laufen(falls du Root-Rechte hast) oder du kopierst die Dateien, welche die Verzeichniss bzw. Dateioperationen durchführen, per php, so dass der Server zum Eigentümer der Dateien wird.

                        Aber lies dir das mal durch.

                        Kommentar

                        Lädt...
                        X