auditctl可精准监控关键安全文件的读写及属性变更,日志含进程名、auid、时间戳等;关键文件包括/etc/passwd、/etc/shadow、/etc/sudoers、ssh和selinux配置文件;用-w -p rwa添加规则,需写入/etc/audit/rules.d/并augenrules --load生效,ausearch用于查询结构化日志。

直接用 auditctl 添加路径监控规则,就能精准捕获关键文件的读、写、属性变更等操作,每条日志自带进程名、用户ID(auid)、时间戳和系统调用细节,无需额外工具或脚本。
哪些文件属于“关键文件”
优先监控直接影响系统身份认证、权限控制和安全策略的文件:
-
/etc/passwd和/etc/shadow:用户账号与密码哈希存储位置 -
/etc/group和/etc/gshadow:组信息及管理员组权限 -
/etc/sudoers及/etc/sudoers.d/目录:特权命令授权配置 -
/root/.ssh/authorized_keys和/etc/ssh/sshd_config:SSH访问控制核心 -
/etc/selinux/config和策略相关路径(如/etc/selinux/targeted/active/policy.kern):强制访问控制开关
一条命令完成读写+属性监控
使用 -w(watch)配合 -p 参数,覆盖四类操作:
-
r:读取(如cat /etc/shadow) -
w:写入(覆盖、追加、截断) -
x:执行(运行脚本或二进制) -
a:属性变更(chmod、chown、setxattr等)
例如监控 shadow 文件所有变动:
sudo auditctl -w /etc/shadow -p rwa -k shadow_access
注意:-p rwa 已包含读、写、属性变更;若还需记录执行行为(如误将 shadow 当脚本运行),可改为 -p rwxa。不建议盲目加 r 到所有规则——高频率读操作(如日志轮转)会快速撑爆日志。
让规则开机自动生效
临时规则(auditctl 添加)在重启后失效,必须写入规则文件并重载:
- 新建规则文件:
sudo vim /etc/audit/rules.d/shadow.rules - 写入内容:
-w /etc/shadow -p rwa -k shadow_access - 加载全部规则:
sudo augenrules --load - 验证是否生效:
sudo auditctl -l | grep shadow
推荐为不同类别文件分文件管理(如 auth.rules、ssh.rules),便于维护和禁用。
快速定位异常事件
日志默认存于 /var/log/audit/audit.log(二进制格式),用 ausearch 提取结构化结果:
- 查所有对 shadow 的访问:
sudo ausearch -k shadow_access - 只看写操作:
sudo ausearch -k shadow_access -m SYSCALL -sc write -i - 过滤 root 用户操作:
sudo ausearch -k shadow_access -ui 0 - 按时间范围查(如最近1小时):
sudo ausearch -k shadow_access --start recent
关键字段说明:auid 是登录用户ID(不可伪造),uid 是当前进程有效用户,exe 显示执行程序路径,comm 是命令名,name 是被访问文件路径。










