Die kurze Antwort :
Sie können den ersten Master-Apache-Prozess nicht auf vernünftige Weise als Nicht-Root für den Master-Prozess starten lassen. Dies liegt daran, dass der Master-Prozess als Superuser ausgeführt werden muss, um eine Verbindung zu Port 80 (HTTP) und 443 (HTTPS) herzustellen und auf Konfigurationsdateien zuzugreifen ( /etc/apache2/
standardmäßig), damit die Mitarbeiter wissen, was sie tun sollen.
Details dazu finden Sie weiter unten. Viele Webserver in den Repositorys verfügen über ähnliche Setup-Typen (NGINX arbeitet ebenfalls nach denselben Grundprinzipien).
Die Details
Der Apache-Master-Prozess - Hiermit wird auf Konfigurationsdateien zugegriffen und Mitarbeiter an Ports <= 1024 gebunden:
Der Master-Prozess von Apache muss als ausgeführt werden root
.
Dies liegt daran, dass alle Konfigurationsdateien in der /etc/apache2/...
Regel im Besitz von root sind und für den Zugriff auf (einige) private SSL-Zertifikatdaten ( /etc/ssl/private/...
normalerweise) Superuser-Strom benötigt werden.
Administratorzugriff ist auch erforderlich, um an Ports unter 1024 zu binden, einschließlich Port 80 (HTTP) und 443 (HTTPS), damit ein Webserver, der mit typischen HTTP / HTTPS-Ports arbeitet, an diesen Ports ordnungsgemäß funktioniert.
Der Master-Prozess macht nicht viel mehr als das und verarbeitet weder tatsächliche Anforderungen von Clients noch interagiert er tatsächlich mit Webdokumenten usw.
Die Apache Worker-Prozesse - Sie verarbeiten Anfragen von und Antworten auf Webbrowser:
Die Mitarbeiter von Apache bearbeiten tatsächlich Anfragen, die an den Webserver gesendet werden, und kümmern sich um den Zugriff auf Daten im System und das Senden der Antwort an Clients. Ich glaube, hier geht es in Ihrer IT-Richtlinie wirklich darum, als Nicht-Root ausgeführt zu werden.
Dies wird als www-data
kein Konto auf Administratorebene ausgeführt und verfügt nicht über erhöhte Berechtigungen. Hier können Standardzugriffskontrollen auf dem System verwendet werden, und genau das gilt für die Einschränkung "Kann nicht als Root ausgeführt werden" - insofern, als Sie nicht möchten, dass die Worker-Prozesse als Root / Superuser ausgeführt werden.
Warum ich denke, dass es eine Fehlkommunikation zwischen Richtlinien und Ihnen gibt, oder warum ich denke, dass Ihre IT-Richtlinien überarbeitet werden müssen und Sie mit den IT-Mitarbeitern in Ihrer Umgebung sprechen sollten:
Wenn in Ihrem Unternehmen / Arbeitsplatz angegeben ist, dass Apache überhaupt nicht als Root ausgeführt werden darf, wenden Sie sich an die IT-Mitarbeiter des Unternehmens.
Der Grund dafür, dass dies eine "schlechte" oder "falsch interpretierte" Richtlinie ist, liegt darin, dass Sie http://somewebaddress.tld
oder https://somewebaddress.tld
in Ihrer Domain nicht verwenden können, wenn Apache nicht an Port 80 bzw. 443 binden kann. Wenn der Master-Prozess nicht als Root ausgeführt werden soll, müssen Sie den Besitz eines /etc/apache2/*
Konfigurationsverzeichnisses manuell ändern oder ein separates Datenverzeichnis für Konfigurationen bereitstellen. Anschließend müssen alle von Apache bereitgestellten Sites Ports abhören, die höher als 1024 sind.