apache 如何記錄日誌
怪我咯
怪我咯 2017-05-16 17:03:06
0
1
587

在linux系統上,apache是​​以www-data(預設)使用者運行的,同時其使用者群組也是www-data。

#

可是我發現apache的日誌目錄/var/log/apache是​​屬於root的,群組是adm

#

www-data對該日誌目錄是沒有寫權限的,而且它不是adm群組的用戶,甚至連讀取權限都沒有。

但是我們發現有一個apache2進程是以root運行的,應該是主進程。難道所有子進程的日誌都是先透過進程通訊傳遞給主進程,然後再記錄的嗎?還是說有其他什麼機制。

怪我咯
怪我咯

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

全部回覆(1)
为情所困

我這裡沒有 Apache httpd,所以我自己寫程式試了試。在 write 时是不检查权限的,也就是说只要日志文件打开成功了,那么再改变用户 ID(setuid)之後依舊可以寫入資料到該文件。當然這樣子的話,如何重新開啟日誌檔是個問題。你直接去看 Apache httpd 的源碼就好。簡單地 strace 一下也許會有發現。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板