文章詳情頁
apache 如何記錄日志
瀏覽:146日期:2024-06-27 18:43:36
問題描述
在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 一下也許會有發現。
相關文章:
1. html5 - 有可以一次性把所有 css外部樣式轉為html標簽內style=" "的方法嗎?2. javascript - 求解答:實例對象調用constructor,此時constructor內的this的指向?3. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變4. javascript - 這不是對象字面量函數嗎?為什么要new初始化?5. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。6. html - vue項目中用到了elementUI問題7. javascript - 有什么比較好的網頁版shell前端組件?8. javascript - iframe 為什么加載網頁的時候滾動條這樣顯示?9. javascript - [js]為什么畫布里不出現圖片呢?在線等10. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?
排行榜
