Bei Nginx läuft der Hauptprozess immer als Root. Dies hat zwei Gründe:

  • die Ports 80 und 443 dürfen nicht von normalen Benutzern verwendet werden
  • der Zugriff auf SSL-Schlüssel ist normalen Nutzern meist verwehrt

Beide Beschränkungen kann man mit entsprechenden Einstellungen in dem Systemd-Service anpassen, aber den Zugriff auf die SSL-Schlüssel in allen Worker-Prozessen halte ich nicht für sinnvoll, weshalb ich besser Nginx als root laufen lasse.

[Service]
User=www-data
Group=www-data
SupplementaryGroups=ssl-cert

RuntimeDirectory=nginx
PIDFile=/run/nginx/nginx.pid

CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=yes

Die Anpassungen in /etc/nginx/nginx.conf:

# user www-data;
pid /run/nginx/nginx.pid;