最准、最轻量的文件监控方式是用 auditctl -w 加路径和权限标记;需确保 auditd 运行、规则写准路径与权限、永久生效要写入 /etc/audit/rules.d/ 并 augenrules --load,再用 ausearch/aureport 查日志。

直接用 auditctl -w 加路径和权限标记,是最准、最轻量的方式。关键不是“能不能监控”,而是规则写得对不对、路径选得准不准、后续怎么查日志。
确认 auditd 服务已运行
没启动就加规则,等于往空盒子里放东西:
- 运行
systemctl status auditd,看到 active (running) 才算就绪 - 如果未安装,RHEL/CentOS 用
yum install audit,Ubuntu/Debian 用apt-get install auditd - 首次启用后建议执行
systemctl enable auditd,确保开机自启
用 -w 规则精准监控文件访问
别用 -a always,exit 去套系统调用,那样日志爆炸还难定位。监控单个文件,必须用 -w(watch):
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
auditctl -w /etc/passwd -p rw -k passwd_rw:监控读写,打上标签便于检索 -
auditctl -w /etc/shadow -p rwa -k shadow_all:读+写+属性变更(如 chmod/chown),适合高敏感场景 - -p 参数含义:r=读、w=写、x=执行(对配置文件通常无意义)、a=属性变更(含权限、所有者、时间戳等)
- 路径必须是真实 inode 路径,不能写软链接名;用
ls -i /etc/shadow确认后再写规则
让规则永久生效
临时规则在 auditd 重启或系统重启后就消失。要长期起效:
- 把规则写进
/etc/audit/rules.d/10-sensitive.rules(文件名带数字前缀可控制加载顺序) - 内容就一行:
-w /etc/shadow -p rw -k shadow_rw,支持 # 开头注释 - 保存后执行
augenrules --load加载全部规则(不是 systemctl restart auditd) - 验证是否生效:
auditctl -l | grep shadow或auditctl -s | grep enabled看 enabled 是否为 1
实时查看谁在读写该文件
加完规则不查日志,等于装了摄像头不看回放:
- 查最近匹配的事件:
ausearch -k shadow_rw -m SYSCALL -i --start 5 minutes ago - 只看触发命令名:
ausearch -k shadow_rw -m SYSCALL -i --start now | grep "comm=" - 配合
aureport -f -i生成可读性更强的文件访问报告 - 想真正“实时滚动”看:
tail -f /var/log/audit/audit.log | aureport -f -i(注意磁盘 I/O 和日志轮转)










