Wie muss ich Dateien in /var/www per rsync synchronisieren, wenn sie www-data gehören sollen?

Wie muss ich Dateien in /var/www per rsync synchronisieren, wenn sie www-data gehören sollen?

Ich habe eine neue ec2 Ubuntu-Box eingerichtet und Apache und PHP5 installiert. Standardmäßig melden Sie sich mit dem ubuntuBenutzer an der Box an, der über sudodie entsprechenden Berechtigungen verfügt.

Ich glaube, Apache läuft als rootund PHP5 läuft als www-data.

Ich glaube, ich möchte, dass für alle Dateien in der Pfadangabe /var/wwwchown(= ) festgelegt wird www-data:www-dataund 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 rsyncDateien 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 rsyncund 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 --ownerund --groupkein 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-dataBenutzer 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-dataund aus root). Nur Dinge, diebrauchenum von Apache beschreibbar zu sein, sollte es im Besitz von www-data sein.

verwandte Informationen