audit.log 默认不记录时间修改操作,需手动配置规则监控clock_settime、settimeofday、adjtimex等系统调用及date、timedatectl执行。
audit.log 里有没有记录 time 命令或 clock_settime 系统调用
有,但默认不开启。Linux audit 子系统不会自动监控时间修改类操作,必须显式配置规则。time 命令本身只是打印当前时间,真正改系统时间的是 date、timedatectl 或直接调用 clock_settime() 系统调用。audit 规则需针对后者捕获——尤其是 adjtimex、clock_settime、settimeofday 这三个关键 syscall。
如何添加 audit 规则捕获时间修改行为
在 /etc/audit/rules.d/time-change.rules 中写入以下规则(需 root 权限):
-a always,exit -F arch=b64 -S clock_settime,settimeofday,adjtimex -k time-change -a always,exit -F arch=b32 -S clock_settime,settimeofday,adjtimex -k time-change -w /usr/bin/date -p x -k time-change -w /usr/bin/timedatectl -p x -k time-change
然后重启 auditd:systemctl restart auditd。注意两点:一是必须同时加 b64/b32 架构规则(否则 64 位系统上 32 位程序调用可能漏捕);二是 -w /path -p x 是监控可执行文件执行,比单纯抓 syscall 更直观对应到用户命令。