Halihallo Tom
Danke für Deine Antwort!
genau dieses Problem hate ich neulich erst ausführlich erklärt.
Der Thread mag gerade mal eben im Archiv verschwunden sein.
Such einfach mal nach "safe mode tom" dann wirst Du es schon wiederfinden.
Zusammenfassung für Nachfolgendes:
----------------------------------
Verzeichnisse können nur per FTP angelegt werden. Über PHP und
Webserverbenutzer erscheint immer SAFE MODE Restriction, da der
Owner des Verzeichnisses (ftp) nicht mit dem User des Scriptes
(wwwrun) übereinstimmt. Jedes Script, ob über PHP (über Webserver
gestartet) als wwwrun oder FTP hochgeladen scheitert an SAFE MODE.
und ein <cite /> von ganz unten:
Was mich eben fasziniert hat: Ein Verzeichnis _wurde_ ja angelegt,
aber das Unterverzeichniss dieses brach mich Restriction ab. Also:
Erstelle ich ein PHP-Script über PHP-Prozess unter wwwrun, kann ich
absolut keine Verzeichnisse erstellen, da der Parent natürlich ein
Verzeichnis des FTP-Servers ist (und sei es nur der Document-Root).
Lade ich es normal über FTP-Server hoch, kann ich wenigstens _ein_
Verzeichnis erstellen, aber keine Unterverzeichnisse mehr,
als ob sich der User _zwischen zwei mkdir's_ ändert... :-)
----------------------------------
Ich bin fündig und habe mich durchgelesen. Der Sinn des Upload-
Scripts ist mir bewusst geworden, ebenso, dass sich die User von
FTP und Webserver unterscheiden und man die Verzeichnisse somit über
ein Script (welches unter dem Webserver läuft) angelegt werden
müssen, sodass der andere Scripte unter dem Webserver-UID auch darauf
zugreifen können.
Was ich nun gemacht habe:
Ich habe ein Script t.php (FTP-Upload) erstellt, welches tt.php (FTP-
Upload) einliest und unter ttt.php speichert. Hm. Das sollte jetzt
doch unter Benutzer wwwrun gespeichert sein? - Interpretiere ich
hier die FTP-Ausgaben falsch?:
-rw-r--r-- 1 ftp ftp 228 Apr 21 14:10 t.php
-rw-r--r-- 1 ftp ftp 183 Apr 21 14:13 tt.php
-rw-r--r-- 1 ftp ftp 183 Apr 21 14:13 ttt.php
oder ist das Script ttt.php immer noch Benutzer "FTP"? - Oder wird
das immer ausgegeben...
Wie auch immer:
Das neue Script ttt.php (wwwrun?) Script startet und bricht mit
gleicher Fehlermeldung ab:
Warning: mkdir(): SAFE MODE Restriction in effect. The script whose
uid is 30 is not allowed to access /home/daa.ch/ftp/www/security
owned by uid 20191 in /home/daa.ch/ftp/www/security/ttt.php on line 7
Ich kann also schlicht gar keine Unterverzeichnisse anlegen. Ich habe
das Parentverzeichnis "security" auch auf read/write/execute für
all gesetzt. Ohne Änderung, PHP erkennt unterschiedliche uid und dann
ist Feierabend.
Was mich eben fasziniert hat: Ein Verzeichnis _wurde_ ja angelegt,
aber das Unterverzeichniss dieses brach mich Restriction ab. Also:
Erstelle ich ein PHP-Script über PHP-Prozess unter wwwrun, kann ich
absolut keine Verzeichnisse erstellen, da der Parent natürlich ein
Verzeichnis des FTP-Servers ist (und sei es nur der Document-Root).
Lade ich es normal über FTP-Server hoch, kann ich wenigstens _ein_
Verzeichnis erstellen, aber keine Unterverzeichnisse mehr,
als ob sich der User _zwischen zwei mkdir's_ ändert... :-)
Kann es echt sein, dass ich den Wald vor lauter Bäumen nicht mehr
sehe?
Ich fühle mich schon fast so, wie bei dem Perl-Problem von
neulich :-)
Viele Grüsse
Philipp
The only program that runs perfectly every time, is a virus.