首页/安全/取证与溯源速查/按用户与会话检索审计记录
Linux 取证135 条

按用户与会话检索审计记录

auid(审计登录 UID)在 su 与 sudo 之后保持不变,是跨提权追踪同一登录会话的关键键;ses 表示会话编号。

取证与溯源速查安全更新于 2026-10-13

审计日志按用户检索

auditd 的记录以登录会话标识 auid 挂靠到具体用户,这点与普通 syslog 不同:即使经过了 su 或 sudo 切换身份,同一次登录的后续动作仍可按 auid 串起来。ausearch 的 -ua 与 -ui 就是分别按 auid 和 uid 过滤的入口。

基本信息

工具ausearch(auditd 套件)
用户过滤-ua 按 auid,-ui 按 uid
时间过滤-ts 支持 today、recent 或具体时刻
事件类型-m USER_LOGIN、-m EXECVE、-m AVC 等
特殊 auid4294967295(即 -1)表示该进程没有登录会话
辅助文件/proc/<pid>/loginuid 保存进程关联的 auid

典型使用场景

  • 把一次登录期间的所有动作串成链条
  • 判断某条命令记录属于哪个登录会话
  • 区分交互登录与系统服务进程
  • 与 su、sudo 记录互相印证
  • 输出指定用户的行为时间线

最小示例

最小示例
ausearch -ua 1000 -ts today | head -40                 # 按 auid 过滤今天的记录
ausearch -m USER_LOGIN -i -ts today | tail -20         # 登录事件,-i 转为可读输出
ausearch -ua 1000 -m EXECVE -ts recent | head -20      # 指定用户的命令执行
cat /proc/1234/loginuid                                # 某进程关联的登录会话
ausearch -ui 0 -ts today 2>/dev/null | head -10        # 按 uid 过滤,注意与 auid 的区别
ausearch -ua 1000 -ts today | wc -l                    # 统计记录条数

字段与解读

字段含义注意
auid登录会话的原始用户切换身份后保持不变
uid当前实际用户提权后会变为 0
ses会话编号关联同一次登录
pid进程号与 loginuid 结合可定位进程
comm命令名只有名称,不含参数
exe可执行文件路径用于判断程序来源
auid 为 4294967295(即 -1)表示进程没有登录会话,例如开机阶段启动的守护进程,统计用户行为时应当排除。
回答「谁登录后做了什么」应当用 -ua;-ui 过滤的是当前实际用户,提权之后的记录会被归到 root 名下。
时间过滤是按日志中的时间戳生效的,跨多个引导周期查询时要同时限定起止时间,否则一次会取出过多记录难以阅读。
先做规模统计再逐条展开更高效:aureport 可按用户、登录与命令汇总,用它判断数据量之后再决定是否细看。
修改审计规则会改变后续记录的内容与范围,取证阶段先记录现有规则,再决定是否需要调整。

易错点

  • 混淆 auid 与 uid:提权后 uid 变成 0,用 uid 过滤会漏掉身份切换前后的连续记录
  • 不排除 auid 为 -1 的进程:系统守护进程会被算作某个用户的行为,统计严重失真
  • 假设审计日志一定存在:未配置规则或服务未运行时,根本没有命令级记录可查
  • 只看单条记录:同一动作会拆成多条,需按事件号聚合才能看清完整行为

数据来源与参考

  • auditd 官方手册(ausearch(8) AUDIT_LOGINUID 说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌