Ungerade Berechtigungen für eine Datei, die von PHP geändert wurde move_uploaded_file ()

8

Ich führe PHP 5.2.6 auf einer Windows Server 2003 Enterprise-Box aus. IIS ist so eingestellt, dass der anonyme Zugriff verweigert und die integrierte Windows-Authentifizierung verwendet wird.

Ich verwende ein PHP-Skript, um eine Datei zu speichern, die von einem Webformular hochgeladen wurde. Die Datei wird in einen temporären Ordner hochgeladen, das Skript erstellt abhängig von anderen Variablen aus dem Webformular einen Dateinamen und einen Pfad, und dann verwendet das Skript move_uploaded_file () von PHP, um die temporäre Datei an den endgültigen Speicherort zu verschieben. All das funktioniert gut. Kurz gesagt, Leute laden Dateien hoch, so dass jeder in der Gruppe sie sehen kann und die Dateien durch das Skript organisiert sind.

Mein Problem ist, dass die Datei am endgültigen Speicherort über ungewöhnliche Berechtigungen verfügt. Es endet nicht mit Berechtigungen vom temporären Speicherort oder vom endgültigen Speicherort. Sowohl der temporäre Standort als auch der endgültige Standort haben die gleichen Berechtigungen: volle Rechte für Eigentümer und Verwaltungen; Lesen und Lesen / Ausführen für 2 bestimmte AD-Sicherheitsgruppen. Die endgültige Datei endet mit nur: volle Rechte für Eigentümer und Verwaltungen. Während die Admins und der ursprüngliche Uploader keine Probleme beim Anzeigen der Datei haben, erhalten alle anderen in der Gruppe "Zugriff verweigert", wenn sie versuchen, darauf zuzugreifen.

Irgendwelche Ideen oder Vorschläge werden sehr geschätzt! Danke!

    
user13414 15.10.2008, 18:14
quelle

2 Antworten

4

Dies scheint ein Problem mit der Funktion move_uploaded_file() zu sein:
Ссылка
Sehen Sie sich die Kommentare unten an und beachten Sie Florian's Kommentar zu copy ().

Würde kopieren () das Problem lösen ?:
Ссылка

    
Chris Roland 15.10.2008, 18:52
quelle
7

von der PHP-Seite auf move_uploaded_file (NB: das funktionierte für mich):

Für diejenigen, die PHP unter Windows und IIS verwenden, SOLLTEN Sie den Wert "upload_tmp_dir" in der php.ini auf ein Verzeichnis in der Nähe des Verzeichnisses Ihrer Website setzen, dieses Verzeichnis erstellen und dann die gleichen Berechtigungen für das Verzeichnis festlegen für Ihr Webseitenverzeichnis. Andernfalls, wenn Sie eine Datei hochladen und in C: \ WINDOWS \ Temp gehen, dann verschieben Sie sie in Ihr Website-Verzeichnis. Ihre Berechtigungen werden NICHT korrekt festgelegt. Dies führt zu Problemen, wenn Sie diese Datei dann mit dem Konvertierungsdienstprogramm von ImageMagick bearbeiten möchten.

    
chris 11.09.2009 00:31
quelle

Tags und Links