Wie Apache protokolliert
怪我咯
怪我咯 2017-05-16 17:03:06
0
1
513

Auf Linux-Systemen wird Apache als www-data-Benutzer (Standard) ausgeführt, und seine Benutzergruppe ist ebenfalls www-data.

Aber ich habe festgestellt, dass das Apache-Protokollverzeichnis /var/log/Apache zu Root gehört und die Gruppe adm ist

www-data hat keine Schreibberechtigungen für das Protokollverzeichnis, ist kein Benutzer in der adm-Gruppe und verfügt nicht einmal über Leseberechtigungen.

Wir haben jedoch festgestellt, dass ein Apache2-Prozess als Root ausgeführt wird, der der Hauptprozess sein sollte. Werden die Protokolle aller untergeordneten Prozesse zunächst über die Prozesskommunikation an den Hauptprozess übergeben und dann aufgezeichnet? Oder gibt es einen anderen Mechanismus?

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(1)
为情所困

我这里没有 Apache httpd,所以自己写程序试了试。在 write 时是不检查权限的,也就是说只要日志文件打开成功了,那么再改变用户 ID(setuid)之后依旧可以向该文件写入数据。当然这样子的话,如何重新打开日志文件是个问题。你直接去看 Apache httpd 的源码就好。简单地 strace 一下也许会有发现。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!