我知道该date -s <STRING>
命令设置了字符串描述的时间STRING
。
我想要的是每当使用上述命令设置时间时将其记录到文件中/tmp/log/user.log
。
在我的 Linux 发行版中,日志记录由 完成syslog-ng
。我已经有一些日志进入了/tmp/log/user.log
。
这是我的系统中用于登录的 /etc/syslog-ng/syslog-ng.conf 的内容/tmp/log/user.log
destination d_notice { file("/tmp/log/user.log");};
filter f_filter10 { level(notice) and not facility(mail,authpriv,cron); };
log { source(s_sys); filter(f_filter10); destination(d_notice); };
我应该怎么做才能让该date -s
命令也登录到/tmp/log/user.log
答案1
默认情况下不记录日期更改,至少在 Debian 上不记录。
最简单的选择是将 /bin/date 替换为一个包装器,该包装器使用打印日志消息logger
然后调用真正的 /bin/date 可执行文件,例如
mv /bin/date /bin/date.real
cat << 'EOF' >/bin/date
#!/bin/bash
logger -p user.notice "date run by $UID: $*"
/bin/date.real
EOF
chmod +x /bin/date
除此之外,我知道grsecurity允许您记录系统时间的任何更改。这需要编译自定义内核。