最直接有效的方式是用 auditctl -w 配合 -p w 和 -k 标签监控文件真实 inode 路径,确保 auditd 活跃运行、规则持久化且日志可查;需先安装启用 auditd,确认内核审计已启用,精准添加仅写监控规则,写入 /etc/audit/rules.d/ 并 augenrules --load 加载,最后用 ausearch/aureport 定位用户与命令上下文。

最直接有效的方式是用 auditctl -w 配合 -p w(仅写)和 -k 标签,监控文件真实 inode 路径,并确保 auditd 正常运行、规则持久化、日志可查。
确认 auditd 已启用且就绪
服务不运行,规则就无效:
- 执行
systemctl status auditd,必须看到 active (running) - 若未安装:RHEL/CentOS 用
yum install audit,Ubuntu/Debian 用apt-get install auditd - 首次启用后务必执行
systemctl enable --now auditd,避免重启后失效 - 检查内核审计是否启用:
auditctl -s | grep enabled输出应为 enabled 1
精准添加物理写入监控规则
只监控“写”动作(-p w),排除读和属性变更干扰,更聚焦篡改行为:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 用
ls -i /etc/shadow确认真实路径(不能写软链接名,如/etc/passwd是链接时,要监控其指向的真实文件) - 添加临时规则测试:
auditctl -w /etc/shadow -p w -k shadow_write -
-p w表示仅捕获 write 系统调用(如echo >>、sed -i、vim保存等),不触发 chmod/chown 或 cat 读取 -
-k shadow_write是关键——后续所有过滤都靠这个 key,没它等于没设标签
让规则永久生效
临时规则在 auditd 重启或系统重启后丢失:
- 将规则写入
/etc/audit/rules.d/10-sensitive.rules(文件名必须以.rules结尾) - 内容只需一行:
-w /etc/shadow -p w -k shadow_write,支持#注释 - 保存后执行
augenrules --load(不是systemctl restart auditd) - 验证是否加载:
auditctl -l | grep shadow_write应能显示该规则
定位执行用户与命令上下文
日志里天然包含 UID、PID、PPID、终端、命令名等字段,无需额外配置:
- 查最近写入事件:
ausearch -k shadow_write -m SYSCALL -i --start 10 minutes ago - 快速提取执行用户和命令:
ausearch -k shadow_write -m SYSCALL -i --start now | grep -E "(uid=|comm=)" - 完整还原操作链:看
uid=(实际用户)、euid=(有效用户,判断是否提权)、comm=(触发进程名,如comm="vi")、exe=(完整路径)、cwd=(工作目录) - 若需导出为易读报表:
aureport -f -i -k shadow_write --start today










