在linux中,用auditd监控敏感目录文件删除需添加unlink、unlinkat、rmdir系统调用规则并持久化:写入/etc/audit/rules.d/,用augenrules加载,通过ausearch -k关键字检索/var/log/audit/audit.log日志。

在 Linux 中,用 auditd 监控敏感目录的文件删除动作,核心是添加针对 unlink、unlinkat 和 rmdir 系统调用的审计规则,并确保规则持久化、日志可查。
添加删除类系统调用的审计规则
文件删除本质由内核系统调用完成,需捕获以下三个关键调用:
-
unlink:删除普通文件 -
unlinkat:带 flag 的删除(如 AT_REMOVEDIR 或相对路径删除) -
rmdir:删除空目录
执行命令添加临时规则(以监控 /etc 为例):
sudo auditctl -w /etc -p wa -k etc_delete_watch
说明:
-w /etc:设置路径监视点
-p wa:监控写入(w)和属性变更(a),其中删除会触发 write 类事件(因目录内容被修改)
-k etc_delete_watch:打上关键字标签,便于后续过滤日志
⚠️ 注意:仅用 -p w 可能漏掉部分 unlinkat 场景;更精准的做法是直接监听系统调用:
sudo auditctl -a always,exit -F arch=b64 -S unlink,unlinkat,rmdir -F dir=/etc -k etc_deletion
(若为 32 位系统,将 b64 改为 b32)
让规则开机自动生效
auditctl 添加的规则重启后丢失,需写入规则文件:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
编辑 /etc/audit/rules.d/delete-monitor.rules:
-w /etc -p wa -k etc_delete_watch -a always,exit -F arch=b64 -S unlink,unlinkat,rmdir -F dir=/etc -k etc_deletion
然后重载规则:
sudo augenrules --load
该命令会合并所有 .rules 文件并推送至内核。确认加载成功:
sudo auditctl -l | grep etc
快速检索删除操作日志
审计日志默认位于 /var/log/audit/audit.log,用 ausearch 过滤最有效:
sudo ausearch -k etc_deletion -m SYSCALL | grep -E "(unlink|unlinkat|rmdir)"
查看完整上下文(含用户、进程、路径):
sudo ausearch -k etc_deletion -i
常见关键字段说明:
exe=:执行删除的程序(如 /bin/rm)
uid=/auid=:实际用户 ID 与原始登录用户 ID(防 su 切换混淆)
name=:被删文件或目录的路径(可能出现在多个 path= 行中)
验证与排错要点
测试是否生效:
- 新建测试文件:
sudo touch /etc/test_del - 删除它:
sudo rm /etc/test_del - 立即查日志:
sudo ausearch -k etc_deletion -i | tail -15
若无记录,检查:
– sudo systemctl status auditd 是否运行中
– sudo auditctl -s | grep enabled 输出是否为 enabled 1
– 规则中 dir=/etc 是精确匹配父目录,不递归子目录;如需监控 /etc/shadow,规则中 dir=/etc 已覆盖(因 shadow 在 /etc 下);但若要监控 /etc/sysconfig/* 下的深层变动,仍属同一规则范围,无需额外添加










