Apache Httpd startet als ein Prozess, der ausgeführt wird root
, um Ports <1024 abhören zu können (80 für HTTP und 443 für HTTPS). Normale Benutzer können das nicht.
Darüber hinaus können einige Konfigurationsdateien während des Startvorgangs nur von root gelesen werden. Beispielsweise sollte Ihr Apache-Benutzer (z. B. www-data
) Ihre private Schlüsseldatei nicht lesen können müssen, wenn Sie SSL konfiguriert haben.
Es ist eine gute Sache, nicht alles als Root auszuführen: Auf diese Weise kann ein Fehler oder ein kompromittierter Dienst dem System nicht so viel Schaden zufügen wie beim Ausführen als Root.
BEARBEITEN:
(Ich habe nur angenommen, www-data
anstatt wwwdata
, aber es spielt keine Rolle, es wird als der Benutzer ausgeführt, für den Sie es festgelegt haben.)
Keiner der Protokolle bietet etwas Ungewöhnliches. Ich habe keine Ahnung, wie es so läuft.
Es läuft einfach so: Es startet einen Prozess als root und gibt dann andere Benutzer als den von Ihnen ausgewählten Benutzer aus.
Wenn Sie die Root-Prozess-ID erhalten (z. B. mit ps auwx | grep apache2
oder grep httpd
abhängig von der Verteilung) und dann ausführen pstree -p -u THE_PROCESS_ID
, sollten Sie die Hierarchie klar sehen. Der übergeordnete Prozess sollte immer permanent ausgeführt werden (andernfalls würden Sie auch die untergeordneten Prozesse beenden).
Siehe die User
Dokumentation (Apache MPM Common Directives) :
Wenn Sie den Server als Root starten, wird der übergeordnete Prozess normalerweise weiterhin als Root ausgeführt.