Ich habe eine neue ec2 Ubuntu-Box eingerichtet und Apache und PHP5 installiert. Standardmäßig melden Sie sich mit dem ubuntu
Benutzer an der Box an, der über sudo
die entsprechenden Berechtigungen verfügt.
Ich glaube, Apache läuft als root
und PHP5 läuft als www-data
.
Ich glaube, ich möchte, dass für alle Dateien in der Pfadangabe /var/www
chown(= ) festgelegt wird www-data:www-data
und dass Ordner auf 755 und Dateien auf 644 festgelegt werden – es sei denn, damit gibt es ein Problem.
So läuft es gut, aber mein Problem ist, dass, wenn ich rsync
Dateien von meinem Laptop auf den Server übertrage, der Eigentümer dieser Dateien geändert wird (und neue Dateien hinzugefügt werden),ubuntu:admin
Ich habe das Handbuch durchgesehen rsync
und bei Google gesucht und bin auf eine Syntax wie die folgende gestoßen:
rsync -avzcO (source) (destination) --owner=www-data --group=www-data
Es scheint jedoch, dass --owner
und --group
kein Argument annehmen, sondern stattdessen dazu gedacht sind, zu erzwingen, dass die Remote-Dateien denselben Besitzer haben wie die Dateien im lokalen Dateisystem, wenn rsync als Superuser ausgeführt wird.
Daher habe ich mit rsync keine Lösung gefunden, um den Remote-Benutzer und die Dateigruppe während rsync festzulegen.
Was mache ich falsch?
Gedanken:
- Vielleicht sollten meine Dateien in /var/www einfach Eigentum von sein
ubuntu:admin
? - Vielleicht habe ich die Rsync-Syntax falsch
- Ich denke, ich könnte als
www-data
Benutzer rsync verwenden, aber das scheint keine gute Idee zu sein - Ich könnte suPHP wie auf einem Shared Host verwenden, aber das scheint ziemlich viel Ärger zu machen
Antwort1
Sie möchten nicht, dass sie www-data gehören. Apache wird zunächst als Root ausgeführt und gibt dann die Berechtigungen an www-data ab. Sie möchten nicht, dass Ihre Webinhalte von dem Benutzer geschrieben werden können, dem die Apache-Prozesse gehören. Dies führt zu einer Sicherheitslücke.
Im Falle eines Angriffs auf Apache hat der Benutzer www-data im Idealfall keinen Zugriff auf das System. Dies ist die sicherste Konfiguration. Wenn der Webinhalt www-data gehört und Apache gehackt wird, kann der Angreifer alle Ihre Webinhalte überschreiben.
Ihr Webinhalt sollte einem normalen Benutzer gehören (dies schließt nobody
, www-data
und aus root
). Nur Dinge, diebrauchenum von Apache beschreibbar zu sein, sollte es im Besitz von www-data sein.