auditd运行时参数变更仅临时生效,必须写入/etc/audit/rules.d/*.rules并执行sudo augenrules --load才能永久生效。auditctl可动态添加-w路径监控、-a系统调用规则、-k关键字标记及删除规则,但重启后丢失;验证需用auditctl -l查看规则、auditctl -s检查状态、ausearch -k检索日志。

Auditd 审计系统运行时的参数变更,指的是在服务已启动状态下,通过 auditctl 动态修改内核审计规则或运行时配置的行为。这类变更不会自动持久化,仅生效于当前会话,重启后丢失。要确保变更真正落地并长期有效,必须区分“临时调整”和“永久配置”两个层面。
运行时参数变更需谨慎操作
直接执行 auditctl 命令(如添加 -w 监控路径、启用 -a 系统调用规则)会即时影响内核审计子系统,但存在几个关键限制:
- 若
auditd服务未运行,所有auditctl命令均无效; - CentOS 7 及更早版本不支持
systemctl restart auditd,该操作会清空全部临时规则; - 规则加载顺序影响匹配结果,后加的规则可能被前面更宽泛的规则覆盖;
- 某些系统调用(如
unlinkat)需明确指定arch=b64或b32,否则 64 位系统可能漏捕 32 位进程行为。
哪些参数支持运行时变更?
以下几类可通过 auditctl 实时调整:
- 文件路径监控:
auditctl -w /etc/shadow -p wa -k shadow_mod - 系统调用捕获:
auditctl -a always,exit -F arch=b64 -S execve -k cmd_exec - 关键字过滤与日志标记:
-k后接任意标识符,后续用ausearch -k快速检索 - 规则禁用/删除:
auditctl -W /path/to/file(取消监控)、auditctl -e 0(临时解锁规则)
如何验证变更是否生效?
- 查看当前加载规则:
sudo auditctl -l - 检查审计状态:
sudo auditctl -s | grep enabled(输出enabled 1表示正常) - 测试触发事件后检索:例如修改
/etc/passwd后执行sudo ausearch -k identity -ts recent
永久化才是生产环境刚需
临时规则只是调试手段。真正需要记录的审计行为,必须写入 /etc/audit/rules.d/*.rules 文件,再执行:
-
sudo augenrules --load(合并所有.rules文件并加载) -
sudo systemctl restart auditd(RHEL/CentOS 8+、Fedora、Ubuntu 20.04+) - 或
sudo service auditd reload(CentOS 7)
注意:augenrules 不会读取 .conf 或无 .rules 后缀的文件,文件名必须规范;修改后务必用 auditctl -l 对比确认新规则已载入内核。











