Datei Rechte beim Upload

chris14

New Member
Hi, ich habe die Webspaces auf meinem Server als fcgi laufen. Da sind ja die Datei und Verzeichnisrechte anders. Ich hab einiges ausprobiert und die Rechte sind wie folgt:

Verzeichnisrchte 505
PHP Datei 400
Andere Dateien wie .png 404

Wenn ich Verzeichnisrchte z.B. 500 oder 550 mache bekomme ich einen Error.
Wenn ich bei .png 400 mache werden bilder auf den Webseiten nicht mehr angezeigt.

Frage 1:

Passen die Rechte so?

Frage 2:

Wenn ich durch ein CMS jetzt eine Datei hochlade bekommen diese ja immer noch die Standardrechte 644.

Ist es möglich mit umask Rechte anzugeben für bestimmte Dateitypen?

Könnte die Änderung mit umask Auswirkungen auf den Server haben. Z.B. wenn eine Logdatei vom Server erstellt wird, das diese die falschen Rechte dann bekommt und es zu Fehlern kommt.

Wenn ich selber Dateien hochlade kann ich die über die Commandline chmod'en. Ist zwar bisschen umständlich aber was solls. Allerdings wäre das bei den Kundenaccounts zu viel Arbeit. Und ich möchte halt aus Sicherheitsgründen das alle Dateirechte korrekt sind.

Gruß Chris

Server Debian Squeeze mit Plesk 11
 
Last edited by a moderator:
Beschäftige dich bitte eindringlich mit Dateirechten, damit du weißt, was die Zahlen bedeuten. Es geht nicht darum, eine möglichst kleine Zahl zu setzen.

Die Rechte passen so, sind aber wirklich sehr restriktiv. Du gibst z.B. allen anderen mehr Rechte, als der Gruppe, der die Datei gehört. Das ist paranoid, macht aber keinen Sinn.

Die Standard-Rechte 644 sind auch vollkommen ausreichend. Leserechte für alle sind auch bei 404 gesetzt. Dass der PHP-Prozess Schreibrechte braucht, um eine Datei hochzuladen und anzulegen macht auch Sinn.
 
chris14 said:
Wenn ich durch ein CMS jetzt eine Datei hochlade bekommen diese ja immer noch die Standardrechte 644.

Und die Gruppe des Prozesses, durch den sie hochgeladen wurden:

Lädst Du mit FTP hoch, wird Die Datei auf "ftp:ftp" als Nutzer und Gruppe stehen. Lädst Du per ssh (scp) auf den Server, haben sie wahrscheinlich "root:root". Muss man - je nach uploadendem Prozess - Manchmal mit
Code:
chown Owner:Group Datei
Code:
chown Owner:Group -R Verzeichnis
anpassen.
 
Lädst Du mit FTP hoch, wird Die Datei auf "ftp:ftp" als Nutzer und Gruppe stehen. Lädst Du per ssh (scp) auf den Server, haben sie wahrscheinlich "root:root".

Quatsch. Der Eigentümer und die Gruppe bestimmen sich im Regelfall aus dem User, der sich gerade eingeloggt hat. Wenn du dich als Neutrino_2003 per FTP oder SCP mit deinem Server verbindest, dann gehören die Dateien, die du hochlädst auch Neutrino_2003 und die Gruppe bestimmt sich aus der Gruppe, die in /etc/passwd für diesen User eingetragen ist.
 
Hab mich wohl falsch ausgedrückt: Was ich meine, ist das "www-run"-Problem.
 
Er schreibt aber direkt als erstes, daß er PHP als FCGI laufen hat. Das läßt vermuten, daß PHP nicht unter dem Apache-User ausgeführt wird und daher natürlich auch das "www-run Problem" nicht auftritt.
In einer Umgebung mit suexec und FCGI sollten folgende Zugriffsrechte ausreichen: Schreibrechte für den User, der die Dateien hochlädt (und unter dem auch PHP ausgeführt wird) und Leserechte für den Apache-User www-data (für die statischn Inhalte). Die legt man so weit oben wie möglich fest (das oberste Kundenverzeichnis, oder wie man es nennen will) und für alle anderen User ist dann an dieser Stelle Schluß. In der darunter liegenden Verzeichnissen können dann ruhig wieder die Standardrechte vergeben sein (755 bzw. 644).
 
Danke danton, für Deine Ausführung!
Hatte mir dazu hier noch näheres angelesen:
Code:
http://wiki.hetzner.de/index.php/Apache_PHP5_fcgi_und_SuExec
 
Back
Top