PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiupload per PHP



Mano
18.09.07, 17:05
Hallo,
wenn ich auf meinem neuaufgesetzten Debian Etch 4.0rc1 Dateien per PHP_Script uploade, werden diese zwar hochgeladen, jedoch mit falschen Rechten.

Nur der Besitzer der Datei (in diesem Fall www-data) darf die Datei lesen, und diese ändern. Also hat nur der Apache darauf Zugriff. Bei meinen bisherigen Debianversionen hatten die Dateien die Rechte 0644 (und das sollte auch Standard sein!). Ist dieses eine Fehlkonfiguration von Debian, PHP, oder Apache?

Wo kann ich ggf. diese Einstellungen vornehmen/anpassen?

zyrusthc
18.09.07, 17:29
Deine Frage währe besser bei http://www.mrunix.de aufgehoben gewesen!
Aber ich helfe dir mal auf die Sprünge : function.chmod (http://de.php.net/manual/de/function.chmod.php) und function.chown (http://de.php.net/manual/de/function.chown.php)

Greeez Oli

Mano
18.09.07, 17:44
Aber ich helfe dir mal auf die Sprünge : function.chmod und function.chown

Ich weiß zwar nicht was Standardeinstellungen (von Debian, Apache oder möglicherweise PHP) mit PHP-Funktionen zu tun haben, aber nunja. Natürlich wäre das eine Möglichkeit bei jedem geuploadeten File die Dateirechte manuell zu ändern.

Jedoch war es bei vorherigen Debianversionen so, dass automatisch die Rechte 0644 genommen wurden ohne, dass diese manuell geändert werden mussten.

Pingu
19.09.07, 10:59
Was heißt hier Standardeinstellungen von Debian, Apache oder PHP?

Es geht hier um die Standardeinstellungen in Deinem Script. Die Standardeinstellungen von PHP ist nämlich, dass ein Fileupload immer ins definierte temporäre Verzeichnis durchführt. Wenn des zugehörige Script abgearbeitet wurde, wird die Datei durch PHP wieder gelöscht. Es ist also immer die Aufgabe des Scripts, die Datei entsprechend zu verarbeiten, kopieren und ähnliches. Damit ist auch die Verwaltung der Rechte die Aufgabe des Scripts.

Ansonsten, sollte Dir sicherlich nicht unbekannt sein, wenn ein Benutzer eine Datei erstellt, wird diese immer mit entsprechenden Default-Rechten erstellt. Diese sind, wie bei allen Unix-Systemen üblich, über die entsprechende umask geregelt: http://de.php.net/umask