要监控对 /etc/shadow 文件的所有写操作,需用 auditctl -w /etc/shadow -p w -k shadow_write 精准监听内核级写入,确保路径真实、规则持久化并验证 auditd 启用与日志可检索。

要监控对 /etc/shadow 文件的所有写操作行为,核心是用 auditctl -w 配合精准的权限标记和关键标签,而不是依赖进程名或命令路径——因为写操作可能来自任意程序(如 usermod、passwd、甚至自定义脚本),只有直接监控文件本身才可靠。
确认真实路径与 inode
Shadow 文件可能被硬链接或符号链接干扰。执行:
ls -i /etc/shadow
确保规则中使用的路径是输出的真实绝对路径(例如 /etc/shadow),而非别名(如 /etc/passwd 或软链目标)。规则必须作用于内核实际写入的那个 inode 对应的路径。
添加写操作专用监控规则
运行以下命令启用实时监控:
sudo auditctl -w /etc/shadow -p w -k shadow_write
- -p w:只捕获写(write)操作,排除读、执行、属性变更等干扰项,日志更聚焦
-
-k shadow_write:打上唯一 key,后续可用
ausearch -k shadow_write精准过滤,避免在海量日志中grep /etc/shadow导致漏判 - 不需要加
-p wa或-p rwxa——若只需“写”,就只开w;多开权限会增加日志量且稀释重点
验证规则是否生效
执行后立即检查:
sudo auditctl -l | grep shadow
应看到刚添加的规则。再确认审计系统已启用:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
sudo auditctl -s | grep enabled
输出中 enabled=1 且 pid 非零,表示 auditd 正常运行并加载了规则。
实时捕获并查看写入行为
触发一次写操作(如 sudo usermod -p '\$6\$...' testuser),然后快速检索:
sudo ausearch -k shadow_write -m SYSCALL -i --start recent | aureport -f -i
-
--start recent自动锚定最近几秒,适合调试 -
aureport -f -i将原始 syscall 日志转为可读格式,显示调用者命令(comm=)、用户(uid=)、时间、结果(success=yes/no) - 若返回空,先检查
systemctl status auditd是否 active,再确认路径拼写和权限标记无误
让规则重启后依然有效
临时规则在 systemctl restart auditd 或系统重启后会丢失。需固化到配置:
echo "-w /etc/shadow -p w -k shadow_write" | sudo tee /etc/audit/rules.d/shadow-write.rules
然后重载规则:
sudo augenrules --load
注意:不要手动编辑 /etc/audit/audit.rules,它由 augenrules 自动生成;所有自定义规则必须放在 /etc/audit/rules.d/ 下的 .rules 文件中。










