作者 主題: [問題]請問syslogd產生的log檔如何讓everyone可讀取?  (閱讀 1905 次)

0 會員 與 1 訪客 正在閱讀本文。

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
我的系統是Mandarke9.1
我在/etc/syslog.conf裡面多加了一行
mail.=info      /var/log/mail/daily_mesg
檔案是我自行先建立的..並給chmod 666的權限..
-rw-rw-rw-    1 root     root       878007 Aug 16 09:07 daily_mesg
重新啟動syslogd之後..log有正確的寫入沒問題...
可是他卻會把權限改成
-rw-r-----    1 root     root       875915 Aug 16 09:07 daily_mesg
如此一來...我在程式裡面要去讀取的時候..
就會權限不足了..
我有man了一下syslogd的線上文件...裡面有提到下面這行..

Syslogd doesn't change the filemode of opened logfiles at any stage  of process.

意思不是說不會去更改權限嗎??
為什麼還會更改呢??

因為我用perl寫的CGI要放在網頁跑..
所以當程式要去讀取daily_mesg的時候..是用apache的權限去存取的...
所以會無法正確的執行...

我試著用下列方式去解決問題..
1.把daily_mesg的owner改成apache,可是當syslogd寫紀錄進檔案的時候,又會自動把owner改成root...所以這個方法不行..
2.我現在用很消極的作法,利用cron每分鐘去跑一次chmod 666 daily_mesg,但是每分鐘還是會有短暫的時間無法正確執行,直到下一次cron再執行才可以..

請問各位學長...有方法可以解決嗎??
感激不盡..
--------------------------
小羽晴好可愛~~

alva

  • 活潑的大學生
  • ***
  • 文章數: 316
    • 檢視個人資料
可以看看下列網址, 應該有用

鳥哥的 Linux 私房菜 -- log files 的分析
http://www.vbird.org/linux_basic/0570syslog.php#logrotate

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
已經解決了...
不是syslogd的問題..
而是Mandrake本身提供的msec安全性工具檢查改掉的..
他每個小時會跑一次..
就會把權限改掉...

解決方式 :
1. 調整/usr/share/msec/perm.3
    加上一行
     /var/log/mail/daily_mesg       current   644
2.執行msec並設成level 3
#msec -o log=stderr 3
--------------------------
小羽晴好可愛~~