mkdir() + save mode = kompatibel?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • mkdir() + save mode = kompatibel?

    Hallo,

    ich knobel seit einiger Zeit an einem Problem, für das ich auf dem Board auch noch keine Lösung gefunden habe...

    Über ein PHP-Script (PHP-Version 4.3.1) möchte ich ein Verzeichnis und ein Unterverzeichnis erstellen. (Hört sich erstmal sehr einfach an...)

    Folgender Code (prinzipiell):

    PHP Code:
    $verzeichnis1 "../service/ordner";
    $verzeichnis2 "../service/ordner/unterordner";

    mkdir($verzeichnis1,0777);
    chmod("$verzeichnis1"0777);
    mkdir($verzeichnis2,0777);
    chmod("$verzeichnis2"0777); 
    Den chmod habe ich reingenommen, da mit mkdir keine ordentlichen Zugriffsrechte vergeben werden (Problem wurde hier im Board schonmal angesprochen).

    Das Verzeichnis "service" besitzt ebenfalls die Rechte 777!

    Das Verzeichnis "ordner" wird nun ordentlich angelegt (mit Rechten 777), aber nun habe ich das Problem, daß meine PHP-Version den SaveMode = ON hat:

    Meinem Script wird somit die UID 636 zugeordnet.
    Das erstellte Verzeichnis "ordner" nimmt aber der Apache in Besitz und ihm wird die UID 30 zugeordnet!

    Beim Versuch, das Verzeichnis "unterordner" anzulegen, bekomme ich deshalb auch die Fehlermeldung:

    Warning: mkdir() [function.mkdir]: SAFE MODE Restriction in effect. The script whose uid is 636 is not allowed to access .... owned by uid 30 in ....

    Meine Frage hierzu:

    Gibt es hier irgendeine Lösung (außer den Save Mode auf OFF zu stellen), um das Problem zu lösen? Ansonsten würde es ja bedeuten, daß die Filefunktionen von PHP unter dem Save Mode sinnlos sind, da ich sie nicht nutzen kann???

    Über ein Feedback von Euch würde ich mich freuen...
    Viele Grüße

    Demian

  • #2
    Leider gibt es keine Möglichkeit, das zu umgehen. Wäre schließlich auch irgendwie seltsam, denn wozu wäre dann der SaveMode dann noch gut...

    Comment


    • #3
      Vielen Dank für die schnelle Antwort!

      Irgendwie verstehe ich das dann aber nicht:

      Es ist doch MEIN Script, welches MEINE Ordner auf MEINEM Webspace anlegen soll.
      Wenn der SaveMode das ausschließt, kann ich doch gar keine Datei- und Ordnerverwaltung mehr machen (zumindest nicht dynamisch, sondern nur noch von Hand via FTP)??? Wozu brauche ich dann noch mkdir() ?

      Das kann doch nicht wirklich der Sinn des SaveMode sein?

      (Klar, wenn ich ALLES ausschließe und KEINER mehr drankommt ist das natürlich super sicher, toller SaveMode :-)

      Viele Grüße

      Demian

      Comment


      • #4
        Ist halt so, dass diese Rechte dann nur noch unter dem FTP-Protokoll verfügbar sind, sonst ist es nicht zulässig, Ordner anzulegen oder zu schreiben (nur wenn nicht existent).
        Alle User auf dem Server haben die gleiche ID, nutzen also zur Ausführung aller Scripte die gleiche ID, was ein Sicherheitsrisiko darstellt.... Leider

        Comment


        • #5
          als erste würd ich aus "$verzeichnis1" mal $verzeichnis1 machen, auch wenn's dadran nicht liegen wird

          hast du mal per ftp-client nachgeschaut, ob wirklich die berechtiung 0777 gesetzt wird?

          eventuell suchst du im manual mal nach umask (in de rhoffnung, das es hilft)
          Ich denke, also bin ich. - Einige sind trotzdem...

          Comment


          • #6
            Die Berechtigung ist definitiv auf 0777, habe ich per FTP geprüft.

            Ich habe auch schon versucht mit

            $my=getmyuid();
            chown("$verzeichnis1",$my);

            die UIDs (in einer brachialen Aktion) zu ändern, aber leider ohne Erfolg.

            umask habe ich noch nicht probiert... mal schauen...

            Das Problem ist, daß das Script automatisch die Ordner anlegen soll und man nicht erst über FTP gehen soll. Das Script kann sich aber am Apache nicht authentifizieren (wegen unterschiedlicher UID, was ja auch logisch ist)... Somit ist doch mkdir() unter SaveMode nicht mehr zu gebrauchen, oder habe ich was übersehen?

            Gruß

            Demian

            Comment


            • #7
              Wie macht Ihr das?

              Sorry, daß ich das Thema nochmal aufgreife:

              Mich würde interessieren, wie Ihr mit der Thematik umgeht:

              Ich habe eine MySQL-Datenbank gebastelt (dient mir als Mediendatenbank). Hier werden Presseartikel und zugehörige Bilder verwaltet. Da ich in der Datenbank die Bilder nicht direkt speicher (aus Performance-Gründen), sondern nur deren Link, muß ich die Bilder in einer Filestruktur ablegen.

              Unter dem SaveMode es ja nicht möglich, aus dem PHP-Script heraus eine Filestruktur zu erstellen und zu nutzen.

              Hat jemand von Euch schonmal ein ähnliches Problem gehabt?
              Mich würde interessieren, wie Ihr das gelöst habt und wie Ihr die Daten prinzipell verwalten würdet?

              Ich würde mich sehr freuen, wenn Ihr mir hierzu nochmal etwas Feedback geben könntet.

              Vielen Dank und viele Grüße

              Demian

              (ich hoffe, ich gehe Euch nicht auf die Nerven mit diesem Thema :-)

              Comment

              Working...
              X