
Ich versuche, WordPress das Hochladen von Dateien in den Ordner „wp-content“ zu ermöglichen, ohne die Berechtigungen für den Ordner auf 777 zu setzen. Allerdings habe ich dabei einige Schwierigkeiten.
Die für den Ordner „wp-content“ festgelegten Gruppen und Benutzer stimmen mit den Gruppen und Benutzern überein, die Apache laut httpd.conf verwenden soll. Wenn ich jedoch den folgenden Befehl ausführe, scheint es, dass Apache tatsächlich als Root ausgeführt wird und nicht als der in httpd.conf angegebene Benutzer.
httpd.conf-Konfiguration
Benutzer xxx Gruppe yyy
Befehl ausführen, um zu ermitteln, als welcher Benutzer Apache ausgeführt wird
ps aux | grep httpd
Ausgabe des obigen Befehls
513 1294 0,4 1,4 316420 54864 ? S 08:30 0:06 /usr/sbin/httpd
513 ist die richtige UID für Benutzer xxx, daher wird das richtig angezeigt. Ich kann jedoch immer noch keine Dateien in WordPress hochladen, ohne die Berechtigungen für den Ordner wp-content auf 777 zu setzen.
Kann mir jemand sagen, worum es hier geht?
Antwort1
Apache muss immer als Root gestartet werden, dann verwendet es Setuid, um zum Benutzerkontext des in httpd.conf angegebenen Benutzers zu wechseln.
Ohne Root (UID = 0) können Sie keinen Listening-Socket auf privilegierten Ports (unter 1024) erstellen.
Weitere Einzelheiten finden Sie in diesen Dokumenten:
Vom ersten Link:
# ps -ef | grep -i http | awk '{print $1}'
root
apache
apache
apache
apache
apache