Webserver Ordnerrechte, user in www-data Gruppe?

stefkey

Member
Hi,

nimmt man die Webuser (arbeite mit php-fpm) in die www-data Gruppe? Nein, oder?

In /var/www/ liegen meine vhost Verzeichnisse. Die Rechte habe ich so zugewiesen:
webuser1:www-data

Und alles unterhalb /var/www/webuser1 hat denn webuser1:webuser1

Ist das gut oder ungewöhnlich?
 

stefkey

Member
ok. Danke. Und was für Rechte bekommt das Home-Verzeichnis eines Users, z.B.: /home/linuxuser1 ?
750 oder 755?

Und die /etc/groups und die /etc/passwd?
Ist es korrekt wenn die 644 haben? 640 geht nicht weil dann der Login scheitert?
 

danton

Debian User
Das mit den Rechten für die Webroots ist abhängig von verwendeten Apache MPM. Bei prefork, worker und event solte es folgendermassen aussehen:
Das Webroot sollte dem jeweiligen User und dessen Gruppe gehören und die Zugriffsrechte 750 haben. Der User www-data wird in die Gruppen aller Webuser aufgenommen, damit Apache auch die statischen Seiten ausliefern kann. Verwendet man im Webserver noch andere Sprachen, sollten die mit suexec ebenfalls im Kontext des Webusers laufen.
Für das MPM itk vergibt man die gleichen Zugriffsrechte, muss aber den User www-data meines Wissens nicht mehr in die Gruppen aufnehmen. suexec wird ebenfalls nicht benötigt.
Bezüglich /etc/groups und /etc/passwd müssen Leserechte für alle vorhanden sein. Die Passwort-Hashes stehen in der /etc/shadow und dort sind die Rechte normalerweise entsprechend eingeschränkt.
 

stefkey

Member
Danke dir danton.

Der User www-data wird in die Gruppen aller Webuser aufgenommen
Das heißt ja auch, das es nicht nur einen User namens webuser1 sondern auch eine Gruppe namens webuser1 gibt?

Für den Moment habe ich meine Verzeichnisse so: webuser1:www-data
Und du meist "für gewöhnlich" wäre es so: webuser1:webuser1 und der User www-dato steckt in der Gruppe webuser1
 

danton

Debian User
Das heißt ja auch, das es nicht nur einen User namens webuser1 sondern auch eine Gruppe namens webuser1 gibt?
Ja, und da hättest du auch selber drauf kommen können, denn wie du oben geschrieben hast, gehören die Dateien innerhalb des Webroots webuser1:webuser1 (User und Gruppe).

Und du meist "für gewöhnlich" wäre es so: webuser1:webuser1 und der User www-dato steckt in der Gruppe webuser1
Ja, du brauchst Schreibrechte für den jeweiligen Webuser (also z.B. webuser1 - für den FTP-Upload) und Leserechte für www-data (für das Ausliefern statischer Inhalte, wie z.B. Bilder). Da innerhalb eines Webroots ja auch config-Dateien liegen können, die Zugangsdaten zur Datenbank enthalten, darf kein anderer Zugriff drauf bekommen. Das erreichst du am einfachsten, indem das Webroot als Besitzer webuser1 und als Gruppe auch webuser1 festlegst und dann die Zugriffsrechte auf 750 setzt (User rwx, Gruppe rx, Andere nichts).
Wichtig ist auch, dass der User alle Scripte im Kontext des jeweiligen Webusers ausführt (bei PHP-FPM einen entsprechenden Pool erstellen und im vHost verwenden, bei anderen Scripts z.B. durch suexec).
 
Top