首页/安全/取证与溯源速查/sudo 会话回放与输入日志
Linux 取证135 条

sudo 会话回放与输入日志

开启 sudo 的 I/O 日志后,命令的输入输出会被记录并可回放,能重现操作过程;涉及隐私内容需按合规要求处理。

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

sudo 会话回放能还原什么

sudo 的 I/O 日志把被授权命令的输入输出记录下来,可以用 sudoreplay 按会话回放,重现当时敲了什么、屏幕上显示了什么。它比 /var/log/secure 中的 sudo 记录详细得多:后者只能说明谁在何时以什么身份执行了哪条命令,看不到命令运行过程中的交互。该功能默认不开,需要在 sudoers 中配置日志开关与日志目录;回放内容可能包含终端里输入的口令,访问与留存要按合规要求限定人员。

基本信息

配置项Defaults log_input, log_output 与 iolog_dir
查看命令sudoreplay -l 列出会话,sudoreplay <会话ID> 回放
记录内容终端输入输出、时间戳、会话标识
默认状态未开启,未配置时没有任何回放数据

典型使用场景

  • 还原一次提权操作过程中实际执行的交互命令
  • 核对操作者陈述与终端记录是否一致
  • 排查误操作导致的配置损坏,定位到具体一步
  • 确认敏感命令的输出被谁看到过
  • 为内部调查提供可比对的操作过程材料

查看配置与会话

查看配置与会话
grep -Rn 'log_input\|log_output\|iolog_dir' /etc/sudoers /etc/sudoers.d/ 2>/dev/null
sudoreplay -l 2>/dev/null | tail -10            # 列出可回放的会话
sudoreplay -l user alice 2>/dev/null | head     # 按用户过滤会话
sudoreplay -l command sudo 2>/dev/null | head   # 按命令过滤
ls -lt --time-style=long-iso /var/log/sudo-io/ 2>/dev/null | head   # 日志目录容量与时间
visudo -c                                        # 改配置后校验语法

sudo 记录层次读法

记录内容适用判断
认证日志谁何时以什么身份执行了哪条命令确认是否发生提权
I/O 日志会话中的输入输出流还原命令执行过程
会话 ID回放时的引用键把报告引用与回放记录对应
配置项是否开启输入输出记录决定这几类数据是否存在
默认未开启时没有任何回放数据,查不到不等于没发生过操作;此时只能退回到认证日志确认命令,无法还原过程细节。
日志目录的容量策略决定可回溯的时长,达到上限后旧会话会被清理,因此需要长期留存的会话应尽快导出并记录校验值。
回放含终端输入内容,可能包含口令与其他凭据,访问、复制与留存都要限定在合适人员范围内,报告中不要直接引用此类内容。

易错点

  • 未开启功能却按「没有回放」推断不存在提权操作
  • 日志目录容量不足,旧会话被清理后无法补做
  • 把回放文件复制到共享目录,终端中的口令随之扩散
  • 直接编辑 sudoers 未用 visudo 校验,语法错误导致 sudo 不可用

数据来源与参考

  • sudo 官方文档(sudoreplay 与 I/O 日志)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌