Tom: Datei in einem gerade erstellten Ordner speichern?

Beitrag lesen

Hello,

beim safe_mode und safe_mode_gid ist im wesentlichen von Interesse, wem die Scripte, Dateien und Verzeichnisse gehören.

Wenn das Script dem User gehört, weil er es hochgeladen hat, dann gehört das Verzeichnis, das er mittels dieses Scripts anlegt trotzdem dem Webserver.

Der Webserver darf dann mit dem Script anschließend nicht mehr auf das von ihm gerade angelegte Verzeichnis zugreifen.

Du müsstest also entweder das Script dem Webserver übereignen. Das chown-Kommando darf aber nur root benutzen. Oder Du müsstest die Datei als User anlegen. Ddas geht dann natürlich nicht mittels PHP-Script.

Die Provider richten gerne die Server mit dem Safe_mode ein. Der Beschreibung nach weiß ich aber nicht, wie man das System dann jemals zum Laufen bringen soll. Besser ist die Verwendung von Open_Base_Dir. Das sollte für jede Domain auf die "Domainroot" der Domain eingerichtet sein. Die sollte sich dann aufteilen in "scripts", "includes" und in "http-root", also Document-Root. Außerdem sollten die Pfade für die include-Dateien und  ein Verzeichnis für safe_mode_exec_dir gesetzt sein.

Workaround und einzige Lücke:
Schreib Dir ein Upload-Script für Deine Scripte. Alle mittels dieses Scriptes hochgeladenen Scripte sind dann Eigentum des Webservers und liegen erstmal in einem Verzeichnis, dass Dir gehört. Wenn Du nun mittels eines weiteren dir gehörenden Scriptes ein Unterverzeichnis zu Deinem anlegst, dann gehört das dem Webserver. Mit den Scripten, die Du mittels des Uploadscriptes hochgeladen hast, kannst Du nun darauf zugreifen.

Besser wäre es wie gesagt, wenn entweder Safe_Mode_GID auch eingeschaltet wäre und dazu open_base_dir benutzt würde.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen