Ordner mit PHP erstellen
Julia
- php
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
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
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";
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
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 jaopen_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
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
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
Hi Tom,
dir und allen anderen danke für die Antworten und die Diskussion!
Viele Grüße,
Julia