Auditd无法扫描文件内容,只能监控指定路径的读取操作;应精准监控已知敏感文件路径,用-w PATH -p r -k KEY添加规则,并通过ausearch和aureport分析日志。

明确监控目标:选真实路径,别碰内容扫描
Auditd 无法像 grep 或 YARA 那样检查文件里有没有“password=xxx”或“API_KEY”。它只响应系统调用(如 openat、read),所以必须指定具体路径。例如:
- ✅ 正确:监控 /etc/shadow、/opt/app/config/secrets.yaml、/var/www/html/.env
- ❌ 错误:试图监控“所有含 .env 的文件”或“所有含 password 字符串的文件”——auditctl 不支持通配符路径或内容匹配
- ⚠️ 注意:路径必须是最终 inode 路径,不是软链接名。用 ls -i /path/to/file 确认后再写规则
添加精准读取监控规则(带 key 标签)
用 auditctl -w 加读权限(-p r)和自定义 key,这是最轻量、最可靠的方式:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
临时测试(立即生效,重启失效):
auditctl -w /opt/app/.env -p r -k env_read - 权限说明:-p r 表示只捕获 open/read 类系统调用,不记录写或 chmod,减少日志噪音
- key 是关键:-k env_read 后续查日志时可直接过滤,避免在海量 audit.log 中 grep 路径(易漏、慢、不可靠)
让规则永久生效(避免重启后消失)
临时规则只存在内存中。要长期起效,必须固化到磁盘并重载:
- 新建规则文件:
echo "-w /opt/app/.env -p r -k env_read" > /etc/audit/rules.d/20-env.rules - 执行重载:
augenrules --load(不是 systemctl restart auditd) - 验证是否加载成功:
auditctl -l | grep env_read 或 auditctl -s | grep enabled(enabled 应为 1)
实时捕获并确认读取行为(谁?什么时候?什么命令?)
加完规则不查日志,等于装了摄像头不看回放。推荐两种实用方式:
-
快速定位最近读取者:
ausearch -k env_read -m SYSCALL -i --start 5 minutes ago | grep "comm="
输出类似 comm="cat" 或 comm="python3",就是触发读取的程序名 -
生成可读性报告:
ausearch -k env_read -m SYSCALL -i --start today | aureport -f -i
会列出用户、时间、进程、文件路径等完整上下文,适合排查或留档 - ⚠️ 注意:如果返回空,先检查 auditd 是否运行(systemctl status auditd),再确认路径和 key 拼写是否完全一致

















