首頁  >  問答  >  主體

apache 如何記錄日誌

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

#

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

#

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

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

怪我咯怪我咯2713 天前524

全部回覆(1)我來回復

  • 为情所困

    为情所困2017-05-16 17:05:06

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

    回覆
    0
  • 取消回覆