GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ausführen von Apache als ein anderer Benutzer

Apache muss anfangs als Root ausgeführt werden, um sich an Port 80 zu binden. Wenn Sie es anfangs nicht als Root ausführen, können Sie sich nicht an Port 80 binden. Wenn Sie sich an einen Port über 1024 binden möchten, können Sie dies tun. Ansonsten mach dir keine Sorgen um root. Das ist der übergeordnete Apache-Prozess und bedient keine Anfragen. Es erzeugt untergeordnete Prozesse und verwirft Privilegien für die Bearbeitung von Anfragen.

Um den Apache-Benutzer zu ändern, geben Sie User ein und Group Parameter in Ihrer Apache-Konfiguration.


@bahamat erklärt es ziemlich gut, aber ich werde ein wenig mehr Details hinzufügen.

Im Verlauf des normalen Betriebs führt der root-eigene Apache-Prozess keine tatsächlichen Operationen aus, außer auf Port 80 zu lauschen und eingehende Verbindungen an seinen (sicherlich nicht privilegierten, wie www-data Benutzer) Kinder.

Der Speicherort der Master-Konfigurationsdatei hängt von den Optionen zur Kompilierzeit ab und variiert je nach Distribution, aber /etc/apache2/apache2.conf ist eine gute Anfangsschätzung.

Wenn Sie ein Mehrbenutzer-Webhosting-System einrichten, sollten Sie sich auch SuExec und fcgid ansehen, damit der Apache-Prozess jedes einzelnen Webhosting-Benutzers als besagter Benutzer ausgeführt wird - so dass, wenn ein Benutzer mit seiner Sicherheit nachlässig ist, der andere Benutzer sind nicht betroffen.


Zumindest bei Ubuntu sind die Einstellungen dafür in /etc/apache2/envvars . Optimieren Sie diese, starten Sie dann Apache neu und Sie können loslegen.


Linux
  1. So legen Sie Limits für Benutzerprozesse unter Linux fest

  2. Rootless Podman als Nicht-Root-Benutzer ausführen

  3. Apache/Mysql läuft nicht. Falsch?

  4. Wird Apache nicht in Netstat ausgeführt?

  5. Wie kann ich die laufenden Prozesse eines beliebigen Benutzers in SSH anzeigen?

So installieren Sie Apache ZooKeeper unter Ubuntu

Ssh – Eine laufende Anwendung auf einen anderen X-Server verschieben??

Benutzer- und Kernelzeit eines laufenden Prozesses abrufen?

Apache kann nicht auf die Datei zugreifen, obwohl sie die Berechtigung hat?

Setzen der umask des Apache-Benutzers

Konfigurieren Sie Jenkins für verschiedene user.home