Wenn Sie Apache anweisen, CustomLog-Dateien zu verwenden, erstellt Apache2 diese Dateien beim Start. Und es gibt sie immer an den Benutzer root: root. Wie kann ich dieses Verhalten ändern ?
Hintergrund
Apache läuft mit
SuexecUserGroup www-data www-data
Gleichzeitig verwende ich ein CustomLog, das die Ausgabe an ein Skript weiterleitet. Das Skript entfernt zwei Bytes von der IP und dann Wirtes an die Protokolldatei. Da Sie Apache nicht anweisen können, die IP aus dem error.log wegzulassen, ist diese Weiterleitung wichtig (in Bezug auf das deutsche Datenschutzgesetz).
Das Skript kann nicht auf mein benutzerdefiniertes Protokoll zugreifen, wenn dieses nicht zu www-data gehört .
Wenn ich den Besitzer wechsle, funktioniert alles einwandfrei.
Ich weiß auch, wie man den Dateieigentümer ändert, wenn logrotate die Protokolldatei umbenennt und neu erstellt.
Wenn ich jedoch den Apache-Prozess stoppe, die Protokolldateien lösche und dann den Apache-Prozess neu starte, werden neue Dateien erstellt, die zu root: root gehören.
Wie kann ich Apache anweisen, die neuen, ungültigen Dateien beim Start als / für www-Daten zu erstellen ?
quelle
Ich bin auf dasselbe Problem gestoßen, konnte jedoch das Skript, das das Protokoll schreibt, nicht ändern. Ich konnte das Skript ändern, das es interpretierte.
Installieren:
root:root
anstelle vonwww-data:www-data
. Dies liegt an der in der OP-Frage erwähnten Situation.www-data
) ausführen , kann die Datei jedoch nicht lesen. Ich mache das als Cron von Roots Crontabroot
den Befehl (as ) auschown www-data:www-data /var/log/apache2/*.log
. Dadurch wird der Besitz der Protokolldateien (jedoch nicht des übergeordneten Verzeichnisses)www-data
wie beabsichtigt geändert , und das Analyseskript kann die Datei dann lesen.Nicht die schönste Lösung und definitiv nicht das, was Sie sich von einem ausgelasteten Server wünschen würden, aber bei einer kleinen Installation ist es gut genug.
gpjod erwähnt, dass dies ein Sicherheitsproblem sein könnte. Die Apache-Dokumentation besagt, dass das Verzeichnis für die Protokolle nicht für andere beschreibbar sein sollte.
Dies gilt jedoch höchstwahrscheinlich für alle Situationen, in denen die OP-Frage gelöst wird, und Sie möchten möglicherweise die Sicherheitstipps in der verknüpften Dokumentation lesen. Da in diesem speziellen Fall das Eigentum von
root
zu geändert wird ,www-data
wie es beabsichtigt ist (siehe die ursprüngliche Frage), sehe ich keinen zusätzlichen Thread, der sich aus meiner Lösung ergibt.quelle