首页/安全/取证与溯源速查/utmpdump 解析二进制登录记录
Linux 取证135 条

utmpdump 解析二进制登录记录

utmpdump 把 wtmp/btmp/utmp 的二进制结构转为可读文本,列为 [类型] [PID] [会话ID] [用户] [终端] [时间],便于脚本化统计与差异对比。

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

utmpdump 转换登录记录

Linux 把登录会话写进 /var/log/wtmp,把失败登录写进 /var/log/btmp,把当前会话放在 /var/run/utmp,三者都是二进制结构文件,用文本工具直接读只会得到乱码。utmpdump 属于 util-linux 工具集,能把这三类文件转成文本,便于脚本统计与前后对比。

基本信息

适用平台Linux(util-linux)
文件分工wtmp 登录历史、btmp 失败登录、utmp 当前会话
输出列类型、PID、会话 ID、用户、终端、来源主机、时间
类型编号USER_PROCESS 为 7、DEAD_PROCESS 为 8、BOOT_TIME 为 2
权限要求读取需要 root 或 utmp 组成员
时间口径默认按本机时区解释,跨机比较前先统一

典型使用场景

  • 统计登录与注销事件的时间分布
  • 分析失败登录的节奏与来源
  • 与认证日志互校,检查是否存在缺口
  • 还原会话使用的终端与来源主机
  • 导出文本供时间线工具纳入统一分析

最小示例

最小示例
utmpdump /var/log/wtmp | tail -20            # 最近的登录与注销记录
utmpdump /var/log/btmp | head -20            # 失败登录记录(需 root)
utmpdump /var/run/utmp                       # 当前在线会话
utmpdump /var/log/wtmp | awk -F'[][]' '$2==7' | wc -l   # 统计登录条目数
utmpdump /var/log/wtmp > wtmp.txt            # 导出文本便于脚本处理
wc -l wtmp.txt                               # 核对导出行数

输出逐列读法

字段含义注意
类型数字编号,表示记录类别7 为登录、8 为注销、2 为重启
PID相关进程号登录与注销可据此配对
会话 IDsession id用于关联同一次会话
用户账号名重启与关机记录为空
终端tty 或 pts 设备会话归属的辅助判断依据
主机来源地址或主机名本地控制台登录为空
时间事件发生时刻带时区偏移,注意换算
类型字段是数字编号,写统计条件前先用样本核对:7 为登录、8 为注销、2 为重启,编号含义固定但直观性差。
btmp 专门记录失败登录,通常只有 root 可读;该文件增长很快,轮转配置是否正常值得一并检查。
直接编辑或截断这些文件会破坏登录记录且无法恢复;取证阶段只读,需要处理时先复制副本。

易错点

  • 用文本工具直接读二进制文件:只会得到乱码或触发终端异常字符,必须先转换再分析
  • 只统计登录不统计注销:缺少退出记录会让会话时长与观察窗口判断失真
  • 忽略来源为空的行:本地控制台登录与重启记录没有主机字段,统计时要按类型排除
  • 编辑或截断原文件:登录记录被破坏后不可恢复,任何处理都只能针对副本

数据来源与参考

  • man 1 utmpdump(util-linux)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌