ausearch 是 auditd 生态中专用于检索内核审计日志 /var/log/audit/audit.log 的工具,支持按关键词(-k)、用户身份(-ua/-ui)、文件路径(-f)、时间范围(-ts/-te)及结果状态(-sv)等多维度精准查询。

ausearch 是 auditd 生态中最直接、最常用的日志检索工具,它不解析 syslog 或应用日志,而是专为读取内核级审计日志 /var/log/audit/audit.log 设计。用对参数,几秒就能从海量记录中精准捞出目标事件。
按关键词(-k)查自定义规则触发的事件
如果你在 /etc/audit/rules.d/ 里添加过带 -k 标签的规则(比如监控密码修改),就可直接用该关键词检索:
-
ausearch -k passwd_changes -i —— 查所有命中
passwd_changes规则的操作,-i 让 UID、系统调用名等自动转为可读形式(如 0 → root,execve → execve) - ausearch -k login_fail -k sudo_exec -i —— 同时匹配多个关键词,适合关联分析(例如:失败登录后立刻执行 sudo)
- 注意:关键词必须与规则中 -k 后所写完全一致,大小写敏感
按用户身份(-ua / -ui)区分真实操作者
Linux 中 sudo、su 会改变进程 UID,但原始登录用户 ID(auid)始终不变。用 -ua(auid)比 -ui(uid)更能锁定“谁真正发起操作”:
- ausearch -ua 1001 -i —— 查 UID=1001 的用户从登录到退出全过程(含 su/sudo 行为)
- ausearch -ui 0 -i —— 只查 root 进程自身执行的操作(不含被提权的子命令)
- ausearch -ua 1001 -m execve -i —— 在该用户所有活动中,只提取命令执行事件
按文件路径(-f)定位敏感访问源头
监控关键文件时,-f 是最直观的入口。它匹配的是被操作的文件路径,不是命令本身:
- ausearch -f /etc/shadow -i —— 所有对 shadow 的访问(open、read、write、getattr 等),包括失败尝试
- ausearch -f /etc/passwd -m SYSCALL -sc write -i —— 仅筛选 write 系统调用,排除 chmod、chown 等属性类操作
- 若要查“谁运行了 vim /etc/shadow”,需组合:ausearch -c vim -f /etc/shadow -i
按时间与结果状态(-ts/-te, -sv)缩小排查范围
全量扫描效率低,加时间窗口和成功/失败过滤能直击异常点:
- ausearch -ts yesterday -te now -m SYSCALL -sv no -i —— 昨天至今所有失败的系统调用(如 permission denied、no such file)
- ausearch -m USER_LOGIN --success no -i —— 所有失败登录(需 auditd 已启用 login 类规则)
- ausearch -m execve -F key=privilege_escalation -F exit=-1 -i —— 带指定 key 且执行失败的命令(exit=-1 表示系统调用返回错误)











