Philipp Hasenfratz: SAFE MODE Restriction bei "verschachteltem"mkdir

Beitrag lesen

Halihallo Tom

Darf der wwwrun ein Verzeichnis oder eine Datei in deinem PHP-BaseDir anlegen? Wenn Du also mit FTP ein Script hochlädtst welches eine Datei anlegen soll, funktioniert das? Dasselbe Script dürfte dann allerdings die von ihm selbst angelegte Datei nicht mehr bearbeiten.

Dem ist IMHO nicht so. wwwrun kann weder Datei noch Verzeichnis
erstellen; dies kann - wie es scheint - nur über FTP geschehen.

Was ich gemacht habe:

1. Script t.php erstellt:
<?
  ini_set('display_errors',true);
  ini_set('error_reporting', E_ALL);
  mkdir( 'test123', 0755 );
  fclose(fopen("test123.txt", "w"));
?>

2. Script über FTP auf den Server geladen. Dort liegt es unter
www.test.ch/t.php (der Vorsicht halber habe ich es gleich im
Document-Root versucht, um eigene Unterverzeichnis-Permission-
Probleme auszuschliessen, die ich mir ggf. selbst eingehandelt
habe. Am Document-Root habe ich keine Änderungen vorgenommen)

3. Script auf www.test.ch/t.php gestartet (Browser|HTTP)

4. Es erscheinen folgende Warnmeldungen:
---
Warning: mkdir(test123): Permission denied in /home/test.ch/ftp/www/t.php on line 4

Warning: fopen(test123.txt): failed to open stream: Permission denied in /home/test.ch/ftp/www/t.php on line 5

Warning: fclose(): supplied argument is not a valid stream resource in /home/test.ch/ftp/www/t.php on line 5
---

Fazit: Ein über HTTP|Webserver gestartetes Script hat lediglich
Lesezugriff auf alle Dateien. Der Lesezugriff ist damit zu erklären,
dass die Permissions des Document-Root auf 0755 gesetzt sind und
somit jeder Lesezugriff hat, nicht jedoch Schreibzugriff (dies hat
nur der Owner).

Zweiter Test mit Script-Upload versuche ich morgen nochmals, dann
mache ich das ganze nochmals über ein Script, welches eine Datei
anlegt (das habe ich bereits geschafft, indem ich dem
Parentverzeichnis höhrere Permissions verpasst habe, sodass auch
everyone Schreibzugriff hat, nicht nur der Owner). Aber höhrere
Berechtigungen zu vergeben kann nicht Sinn und Zweck der Aktion sein.

Nun, wie gesagt. Der zweite Test (über ein Script ein Script
erstellen|uploaden und dieses starten) wird morgen folgen.
Ich hatte es heute ja schon versucht, nur wage ich mich hierzu nicht
mehr zu äussern, da ich nicht mehr alles weiss. Auf jedenfall lief
es im Endeffekt auf folgendes heraus:

Upload über FTP: Permission denied.
Upload über Webserver/Script: SAFE MODE Restriction: uid's stimmen
   nicht überein.

Nun, danke vorerst für Deine Bemügungen. Ich sehe und spreche morgen
weiter; jetzt muss ich mich beim Tennis erstmal meinen Kopf
abkühlen und neue Denkenergie sammeln :-)

Viele Grüsse

Philipp

--
The only program that runs perfectly every time, is a virus.