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