作者 | fcamel (飛啊!起舞的小駱駝) | 看板 | P_fcamel |
標題 | [FreeBSD] 把sudo的log記錄到專門的檔案 |
時間 | Wed Jul 28 23:11:01 2004 |
sudo會記錄在/var/log/messages裡, 但這個檔案記了大部份的log, 太雜,
在使用量高機器上一下就會被newsyslog給rotate掉
sudo的facility是local2, 這是由系上抄來的, sudo的man page裡沒說
man 3 syslog會列出所有facility對應到的常數,
local0 ~local7對應到 LOG_LOCAL0 ~ LOG_LOCAL7
我去trace source code的結果, 得到如下的結果:
defaults.c: { "local0", LOG_LOCAL0 },
defaults.c: { "local1", LOG_LOCAL1 },
defaults.c: { "local2", LOG_LOCAL2 },
defaults.c: { "local3", LOG_LOCAL3 },
defaults.c: { "local4", LOG_LOCAL4 },
defaults.c: { "local5", LOG_LOCAL5 },
defaults.c: { "local6", LOG_LOCAL6 },
defaults.c: { "local7", LOG_LOCAL7 },
config.h:#define LOGFAC "local2"
看來sudo確實是用local2
1.
在/etc/syslog.conf裡設定:
local2.info /var/log/sudo.log
[NOTE]
a. 不是syslogd.conf
b. 中間要打TAB, 不能用SPACE
c. 要寫在最下面的!ooxx, *.*之類的設定之前
2.
touch /var/log/sudo.log;
chmod 640 /var/log/sudo.log;
已產生sudo.log後, 對syslogd的pid送出 -HUP, 讓它重讀設定檔即可
3.
改/etc/newsyslog.conf, 設定sudo.log的rotate時間
/var/log/sudo.log root:wheel 640 7 * $M1D0 Z
|