Julia: Ordner mit PHP erstellen

Hi,
ich möchte mit php einen neuen Ordner erstellen. Auf dem Root-Verzeichnis des Webservers (bzw. in einem Unterordner dessen) kein Problem. Habe ich auch die Möglichkeit, das Verzeichnis auf einem anderen Rechner/ Netzwerkressource im selben Netzwerk zu erstellen und wenn ja, wie "wechsle" ich die Ressource?
Der Webserver ist übrigens ein Linux-Server.

Vielen Dank und viele Grüße,
Julia

  1. Hi,

    das ist nicht so ganz trivial, da Du Dich mit den File-Befehlen in PHP erstmal nur innerhalb des WWW-Roots bewegen kannst. Was Du aber tun kannst, ist, mit exec(), system() oder passthru() ein vorher angelegtes Shellscript auszufuehren, das diese Aufgabe erledigt. Natuerlich muessen dann die Berechtigungen des www-Useraccounts stimmen.

    Gruss
    Martin

    1. echo $begrüßung;

      das ist nicht so ganz trivial, da Du Dich mit den File-Befehlen in PHP erstmal nur innerhalb des WWW-Roots bewegen kannst.

      Das ist nicht richtig. Man hat mit PHP im Rahmen der Berechtigung des User, unter dem das Script läuft, vollen Serverzugriff. Der Safe-Mode und open_basedir können weitere Restriktionen bereithalten. Unter den Directory Functions befinden sich einige Funktionen, um das aktuelle Arbeitsverzeichnis zu wechseln. Das würde ich aber im Allgemeinen nicht tun, stattdessen den gewünschten Pfad vollständig angeben.

      echo "$verabschiedung $name";

      1. Hello,

        Der Safe-Mode und open_basedir können weitere Restriktionen bereithalten.

        Das sthet immer noch auf meinem Zettel.
        Wie funktioniert open_basedir?

        Ist leider nicht vollständig beschrieben.
        Nur ich schnappte neulich hier in einem Thread auf, dass es nur ein suffix ist für den Dateipfad.
        Das wusste ich zwar durchs Lesen des Manuals schon, hatte es aber verdrängt.

        Jedenfalls ging bei mir die rote Lampe an.
        Man könnte ja

        open_basedir_pfad/Unterverzeichnis/../../../../etc/xyz

        angeben, wenn das zufällig gerade reicht.

        Oder wird der realpath auf den Suffix untersucht? Ich habe es noch nicht ausprobiert.

        Zitat:
        All symbolic links are resolved, so it's not possible to avoid this restriction with a symlink. If the file doesn't exist then the symlink couldn't be resolved and the filename is compared to (a resolved) open_basedir.

        Es steht da nicht ausdrücklich, dass realtive Pfade auch in absolute umgewandelt werden VOR der Prüfung. Und ich trau PHP nur so weit, wie ich es selber ausprobiert habe. (siehe fread() )

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. Hi

          Ist leider nicht vollständig beschrieben.
          Nur ich schnappte neulich hier in einem Thread auf, dass es nur ein suffix ist für den Dateipfad.
          Das wusste ich zwar durchs Lesen des Manuals schon, hatte es aber verdrängt.

          Jedenfalls ging bei mir die rote Lampe an.
          Man könnte ja

          open_basedir_pfad/Unterverzeichnis/../../../../etc/xyz

          Nein das geht nicht. Das mit dem Suffix trifft nur insofern zu, wenn du z.b. folgendes schreibst:

          open_basedir /var/www/test

          würde php auch auf folgende verzeichnisse zugriff gewähren:

          /var/www/testtest
          /var/www/test12345

          Das Problem kannst du aber mit einem "/" am schluss vermeiden:

          open_basedir /var/www/test/

          Und ich trau PHP nur so weit, wie ich es selber ausprobiert habe

          Dann nim doch ASP! *SCNR*

          gruss

          lightfly

          1. Hello,

            Und ich trau PHP nur so weit, wie ich es selber ausprobiert habe
            Dann nim doch ASP! *SCNR*

            Ist das denn da anders?

            PHP
            Perl
            ASP
            CFM
            JSP/Servlet?

            Was gibt es sons noch?

            Woeviel Prozent gemessen am Seitenaufkommen wrden die haben?

            Ich denke, dass man an PHP (und ggf. seinen direkten Nachfolgern) die nächsten zehn Jahre nicht vorbei kommt, bzw. (wirtschaftlich) nichts falsch macht, wenn man sich damit auseinandersetzt.

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hello Julia,

    ich möchte mit php einen neuen Ordner erstellen. Auf dem Root-Verzeichnis des Webservers (bzw. in einem Unterordner dessen) kein Problem. Habe ich auch die Möglichkeit, das Verzeichnis auf einem anderen Rechner/ Netzwerkressource im selben Netzwerk zu erstellen und wenn ja, wie "wechsle" ich die Ressource?
    Der Webserver ist übrigens ein Linux-Server.

    PHP arbeitet mit dem lokalen Filesystem. Das hast Du ja auch schon erkannt.
    Du hast mit PHP grundsätzlich erstmal auf das ganze Filesystem Zugriff. Eingeschränkt wird das

    A)  durch die ganz normalen Benutzerregerln des Filesystems
        Wo dem PHP-User (je nach CGI oder Modul der eingestellte User für den Virt-Host
        oder der eingestellte User für den Webserver) die Rechte gewährt wurden, darf er
        sie auch nutzen

    B)  durch die open_basedir-Einstellung in der Initialisierung von PHP

    C)  durch den "Safe-Mode" von PHP

    Die beiden letzten Einschrnänkungen erlegt sich PHP selber auf, und schränkt damit seinen User ein

    Verändernde Zugriffe auf fremde Filesysteme sind möglich durch

    1)  Einbinden des Dateisystems in den Baum des eigenen (siehe "man Mount")

    2)  durch Bereitstellung eines entsprechenden Protokolls nebst Server auf dem fremden System
        - FTP
        - HTTP (wenn PUT und ggf. auch DELETE aktiviert sind)
        - SMB  (Samba-Server läuft auf dem fremden Filesystem)
        - SSH
        - es gibt bestimmt weitere...

    3)  proprietäre (PHP-)Scripte auf dem fremden Server, die dies für Dich erledigen

    Um Ergänzung wird gebeten

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hi Tom,
      dir und allen anderen danke für die Antworten und die Diskussion!

      Viele Grüße,
      Julia