
Ich verwende Apache2, um eine Django-App bereitzustellen. Ich habe Apache2 auf einen anderen Benutzer als Apache eingestellt. Das Problem besteht darin, dass sich der Benutzer ändert, wenn der Server ausgeführt wird, die Umgebungsvariable des Home-Verzeichnisses ($HOME) jedoch /root bleibt. Warum ist das so?
Antwort1
Ich bin kein Experte für die internen Abläufe von Linux/Unix, aber ich glaube, dass der Systemaufruf, der die effektive Benutzer-ID ändert, keine Umgebungsvariablen ändert.
Umgebungsvariablen würden nur dann einbezogen, wenn ein neuer Prozess ausgeführt oder gespawnt würde, d. h. wenn Sie Apache starten.
Sie können ein kleines Wrapper-Skript schreiben, um $HOME auf einen anderen Wert zu setzen, und dann Apache starten. Wenn Sie Debian verwenden, können Sie einfach /etc/init.d/apache2 ändern.