Ich arbeite daran, wie man Django-Anwendungen mit uWSGI und Nginx unter Ubuntu 16.04 bedient . Am Ende des Artikels "Erstellen einer System-Unit-Datei für uWSGI" wird der www-data
Benutzer erläutert . Was ist das und warum ist es wichtig?
Ich arbeite daran, wie man Django-Anwendungen mit uWSGI und Nginx unter Ubuntu 16.04 bedient . Am Ende des Artikels "Erstellen einer System-Unit-Datei für uWSGI" wird der www-data
Benutzer erläutert . Was ist das und warum ist es wichtig?
Antworten:
Zur Sicherheit.
Die Dateien können nicht weltweit beschrieben werden. Sie sind auf den Eigentümer der zu schreibenden Dateien beschränkt.
Der Webserver muss unter einem bestimmten Benutzer ausgeführt werden. Dieser Benutzer muss existieren.
Wenn es unter root ausgeführt würde, müssten alle Dateien für root zugänglich sein und der Benutzer müsste root sein, um auf die Dateien zugreifen zu können. Mit root als Eigentümer hätte ein kompromittierter Webserver Zugriff auf Ihr gesamtes System. Durch die Angabe einer bestimmten ID hätte ein kompromittierter Webserver nur vollen Zugriff auf seine Dateien und nicht auf den gesamten Server.
Wenn Sie sich dafür entscheiden, es unter einer anderen Benutzer-ID auszuführen, muss dieser Benutzer der effektive Eigentümer der Dateien sein, um die richtigen Berechtigungen zu erhalten. Es kann verwirrend sein, persönlichen Besitz von systemweiten Dateien für Ihr persönliches Konto zu haben.
Das Erstellen eines bestimmten Benutzers erleichtert das Erkennen der Dateien und das Erkennen der ID chown
für neue Dateien und Ordner, die der Site hinzugefügt wurden.
Die Benutzer-ID oder der Name des Besitzers spielt keine Rolle. Was auch immer ausgewählt oder entschieden wird, muss in den Konfigurationsdateien des Webservers konfiguriert werden.
Standardmäßig befindet sich die Konfiguration des Besitzers www-data
in der Ubuntu-Konfiguration von Apache2. Da dies die Standardkonfiguration ist, wissen Sie bequem, welche Eigentumsrechte für Ihre Webdateien erforderlich sind. Wenn Sie es ändern, müssten Sie die Dateien auf Ihrer Site entsprechend ändern.
Ich führe Nginx nicht aus , aber da es sich im Ubuntu-Repository befindet, bin ich sicher, dass es mit der www-data
Konfiguration als Standard getestet wurde .
www-data
. Aus diesem Grund haben sie Sie wie in Ihrer Frage gebeten, die Benutzer-ID und die Gruppen-ID zu erstellen, wenn sie nicht vorhanden sind. Die Apache2-Installation erstellt den Benutzer automatisch. Bei Nqinx bin ich mir nicht sicher . Sie können prüfen, ob es existiert mit: iid -u www-data&&id -g www-data
. Wenn es existiert, wird die ID-Nummer des Benutzers und der Gruppe angezeigt. Standardmäßig sind die Benutzer- und Gruppennummern unter Ubuntu 33
.
www-data
als Eigentümer kann auch ein Sicherheitsrisiko darstellen, wie in der base-passwd
Dokumentation erwähnt (siehe @ murus Antwort), da Eigentümer in der Regel über Lese- / Schreibzugriff auf alle Web-Serving-Inhalte verfügen. Sie können den Schreibzugriff auf den www-data
Eigentümer entfernen oder einen anderen Eigentümer verwenden. www-data
Auf jeden Fall ist Lesezugriff auf alle zu übermittelnden Daten erforderlich. Wenn Sie jedoch nur die für jede Datei und jedes Verzeichnis erforderlichen Berechtigungen erteilen, sind Sie sicherer.
www-data
ist der Benutzer, den Webserver unter Ubuntu (z. B. Apache, nginx) standardmäßig für den normalen Betrieb verwenden. Der Webserver-Prozess kann auf jede Datei zugreifen, auf die zugegriffen werden www-data
kann. Es hat keine andere Bedeutung.
Aus der base-passwd
Dokumentation ( /usr/share/doc/base-passwd/users-and-groups.txt.gz
):
Einige Webserver werden als WWW-Daten ausgeführt. Der Webinhalt sollte nicht im Besitz dieses Benutzers sein, da sonst ein kompromittierter Webserver eine Website neu schreiben kann. Von Webservern geschriebene Daten gehören www-data.
base-passwd
Dokumente dafür
www-data
ist der Benutzer (und auch die Gruppe), mit dem der Dienst httpd (apache) auf Ihrem System agiert .