phpbar.de logo

Mailinglisten-Archive

[php] safe_mode, file-upload und .htaccess

[php] safe_mode, file-upload und .htaccess

Hartwin Rohde hartwin.rohde_(at)_gmx.net
Sat, 24 Feb 2001 18:30:32 +0100 (MEZ)


On Sat, 24 Feb 2001 14:09:13 +0100, Uwe Preisendoerfer wrote:

>Hallo Hartwin,
Hi,

>HR> nach verdammt langem Suchen konnte ich keine Infos zu einem
>HR> *funktionierenden* Eintrag in einer .htaccess - Datei finden, der es mir erlaubt, das
>HR> upload_tmp_dir auf einen von mir gewünschten Pfad zu setzen.

>ich gehe einmal davon aus, das Du diesen Eintrag in der php.ini
>meinst bzw. diesen dynamisch setzen willst

>;upload_tmp_dir =        ; temporary directory for HTTP uploaded files
>                           (will use system default if not specified)

>Diesen Eintrag kannst Du meines Wissens per Php Script nicht jederzeit
>neu setzen.

Stimmt, ich will ihn aber auch nicht in der Systemweiten php.ini haben.
Das Problem dabei ist folgendes. Auf der Kiste sitzen ca. 200 Leute, die
alle PHP verwenden wollen, und deren Scripte ihnen auch gehören (UID).
Wenn nun eines dieser Scripte einen Fileupload macht, dann werden die
Rechte auf dieses Uploadfile im tmp-Verzeichnis auf die UID dessen
gesetzt, dem das /tmp gehört, also UID 0. safe_mode verhindert nun, daß
auf Dateien, die einem nicht gehören zugegriffen werden darf ... PENG.

>upload_tmp_dir string
>  Hier wird das temporäre Verzeichnis angegeben, in welchem Dateien
>  gespeichert werden, die mittels file upload auf den Server geladen
>  werden. Dieses Verzeichnis muss schreibbar sein.

Stimmt, hab ich auch so getzt, doch blöderweise ist ja die PHP.INI
systemweit gültig, wem soll nun also das tmp gehören, wer soll also die
Möglchkeit haben, Fileuploads durchzuführen? Was ich suche ist eine
Möglichkeit, jedem User sein eigenes Temporärverzeichnis zu geben.

>Standardmäßig werden Dateien in dem vorgegebenen temporären
>Verzeichnis des Servers gespeichert. Dies kann durch das Setzen der
>Umgebungsvariablen TMPDIR direkt in der Umgebung, in der PHP
>ausgeführt wird, geändert werden. Ein Setzen des temporären

Wenn es unter LINUX eine Umgebungsvariable gäbe, die sich TMPDIR nennt,
dann hätte ich das auch gemacht, ich habs auch mal mit SetEnv in die
.htaccess geschrieben, kein Erfolg.

>Was ich nicht genau weiß ist die Bedeutung von 'Umgebungsvariablen
>TMPDIR direkt in der Umgebung'.

Nunja, ich denke, daß eben genau dafür die htaccesss - Datei da ist, doch
dazu hab ich keine Doku und irgendwie hat sich dazu auch noch niemand
geäußert.

>Aber warum versuchst Du nicht das ganze völlig dynamisch zu halten und
>gibst das temp_dir jeweils in dem Script an, an welches Du die Daten
>übergibst?

Weil ich z.B. einfach mal phpMySQLAdmin nutzen möchte, und damit größere
Dumpfiles hochladen will, und weil ich ne Weile gebraucht hab, um den
PHPShop an meine Bedürfnisse anzupassen. Die wollen beide Fileuploads
haben und zwar so wie das schon immer ging, da nun noch irgendwelche
Patches reinzuschreiben will ich eigentlich vermeiden.

>Wozu also die Angabe in der htaccess Datei? Beschreibe Dein Problem
>doch einmal etwas genauer, eventuell hat jemand so etwas ja schon
>einmal anders gelöst.

Die Sache mit der .htaccess - Datei zielt auf eine generelle Lösung für
alle Nutzer meines Rechners ab. Ürigens funktioniert es nicht per

php_value upload_tmp_dir /irgendwas/nochwas

Das geht noch nicht mal wenn dieser Eintrag in der httpd.conf steht, das
upload_tmp_dir ist ein php_admin_value - Wert, der natürlich nicht über
die .htaccess geändert werden kann.

Das Problem ist also zusammengefaßt: Wie kann ich jedem Nutzer ein
individuelles tmp-Verzeichnis geben, damit auch alle einen Dateiupload
machen können und trotzdem der safe_mode eingeschaltet ist.

>Grüße,
> Uwe

CU/2 sagt Hartwin

-- 
 _______________________________________________________________
|        mailto:hartwin.rohde_(at)_gmx.net (Hartwin Rohde)           |
|        klickto:http://www.in-berlin.de/User/harko/            |
|                                 foneto:030 - 44 34 11 55      |
|--------------------------o      funkto:0177 - 24 06 413       |
| 2048 Bit / ID: 307CFA39   \___________________________________|
| Fingerprint: B5 A1 F1 28 A4 D3 C2 B9  60 5A 8F 04 C8 9E AB 96 |
\_______________________________________________________________/





php::bar PHP Wiki   -   Listenarchive