PHP_Anfänger: ftp_mkdir vs. mkdir

Hallo alle zusammen

Ich habe eine Frage zur Anwendung der beiden Funktionen ftp_mkdir und mkdir.

In diversen File-Upload-Tutorials habe ich gelesen, dass die Funktion mkdir, bei entsprechenden Konfigurationen auf dem Webserver nicht funktioniert, da die Erbfunktionen nicht entsprechend mitgeliefert bzw. angepasst werden.

Aber ich habe noch in keinem Tutorial gelesen, dass man dieses Problem mit ftp_mkdir lösen soll bzw. könnte, aber warum? Wenn ich z.B. mit FileZilla ein Ordner auf dem Webserver erstelle bekommt dieser auch die entsprechenden Erbinformationen mitgeliefert, was heisst, dass man einen Order per ftp_mkdir ohne Berechtigungsprobleme erstellen könnte, oder nicht?

Hat sich jemand von euch ebenfalls damit befasst und wenn ja zu was könnt ihr mir raten. Ich arbeite gerade an einem File-Upload und bin mir am überlegen, wie man den Verzeichnisverwaltungsprozess am ehesten realisieren könnte.

  1. Hi!

    In diversen File-Upload-Tutorials habe ich gelesen, dass die Funktion mkdir, bei entsprechenden Konfigurationen auf dem Webserver nicht funktioniert, da die Erbfunktionen nicht entsprechend mitgeliefert bzw. angepasst werden.

    Du meinst die Besitzverhältnisse und die Berechtigungen. Die kann man mit Einschränkungen über chmod() und chown()/chgrp() ändern. Die Einschränkungen betreffen die Besitzverhältnisse, die ein normalsterblicher User nicht oder nicht großartig verändern kann, damit man nicht anderen Nutzern Dateien unterjubeln kann, die deren über Quota eingeschränkten Platz verringern könnten, ohne dass sie das merken.

    Aber ich habe noch in keinem Tutorial gelesen, dass man dieses Problem mit ftp_mkdir lösen soll bzw. könnte, aber warum? Wenn ich z.B. mit FileZilla ein Ordner auf dem Webserver erstelle bekommt dieser auch die entsprechenden Erbinformationen mitgeliefert, was heisst, dass man einen Order per ftp_mkdir ohne Berechtigungsprobleme erstellen könnte, oder nicht?

    Der Unterschied besteht darin, dass du von PHP aus mit mkdir() das Verzeichnis als der Benutzer anlegst, unter dem das PHP läuft. Bei schlechten Hoster-Konfigurationen ist das meist ein generischer Nutzer für den Webserver, der FTP-Benutzer ist jedoch ein individueller. Für ein ftp_mkdir() hast du dich ja vorher mit diesem individuellen Nutzer angemeldet, so dass der FTP-Server deinen Auftrag unter deiner Kennung erledigen kann.

    Hat sich jemand von euch ebenfalls damit befasst und wenn ja zu was könnt ihr mir raten. Ich arbeite gerade an einem File-Upload und bin mir am überlegen, wie man den Verzeichnisverwaltungsprozess am ehesten realisieren könnte.

    Für welche Aufgabenstellung genau?

    Lo!

    1. Für welche Aufgabenstellung genau?

      Lo!

      Im Prinzip müssen nur Ordner angelegt werden, weiter nichts, aber ich möchte das Script so programmieren, dass man es ohne Probleme auf jedem Webserver (theoretisch) automatisiert installieren lassen könnte, ohne dass  Fehlermeldungen wegen unzureichenden Berechtigungen dazwischen funken.

      Ich habe auch schon an chown, chmod und chgrp gedacht aber ich habe gelesen, dass es Webhoster gibt, welche die nötigen Berechtigungen zum Benutzen der Commandos so konfiguriert haben, dass man als Kunde nicht mehr drauf zugreifen kann.

      1. Hi!

        Im Prinzip müssen nur Ordner angelegt werden, weiter nichts, aber ich möchte das Script so programmieren, dass man es ohne Probleme auf jedem Webserver (theoretisch) automatisiert installieren lassen könnte, ohne dass  Fehlermeldungen wegen unzureichenden Berechtigungen dazwischen funken.

        Ordner anlegen ist ja kein Problem. Die Frage ist, wer soll alles drauf zugreifen und warum reichen dir diese Rechte nicht? Du hast am Ende nur entweder den FTP-User als Besitzer oder den Webserver-User. Die Berechtigungen kann man zur Not immer noch auf group und/oder all others: read, write(, executable) setzen.

        Ich habe auch schon an chown, chmod und chgrp gedacht aber ich habe gelesen, dass es Webhoster gibt, welche die nötigen Berechtigungen zum Benutzen der Commandos so konfiguriert haben, dass man als Kunde nicht mehr drauf zugreifen kann.

        chown() und chgrp() ist schon vom Betriebssystem eingeschränkt.

        Lo!

    2. Hello,

      Du meinst die Besitzverhältnisse und die Berechtigungen. Die kann man mit Einschränkungen über chmod() und chown()/chgrp() ändern. Die Einschränkungen betreffen die Besitzverhältnisse, die ein normalsterblicher User nicht oder nicht großartig verändern kann, damit man nicht anderen Nutzern Dateien unterjubeln kann, die deren über Quota eingeschränkten Platz verringern könnten, ohne dass sie das merken.

      ... oder viele schlimmer, die dann unter deren Namen ausgeführt werden könnten.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de