首页/系统/Linux 运维命令速查/sudo 操作审计与日志

sudo 操作审计与日志

sudo 默认记录每条命令:Debian 在 /var/log/auth.log、RHEL 在 /var/log/secure、systemd 环境在 journal;审计排查「谁动了什么」从这里开始。

Linux 运维命令速查系统更新于 2026-10-13

sudo 操作审计是什么

sudo 默认会记录每一条被提权执行的命令,这是回答「谁在什么时候动了什么」的第一手材料。日志位置随发行版与日志方案不同:有的落在认证日志里,有的落在安全日志里,使用 systemd 的系统还可以直接查日志服务。审计不只是保存日志,更要对失败尝试做监控——短时间内大量授权失败,往往意味着有人在猜口令或做越权探测。

基本信息

适用平台GNU/Linux(sudo 与系统日志)
日志位置Debian 系在认证日志、RHEL 系在安全日志、systemd 环境在日志服务
关键字段操作者、终端、执行的命令、目标用户
加固选项可开启输入与输出记录,输出记录会保存完整会话
留存要求合规场景应接入远程收集或延长保留
监控要点授权失败激增需要告警

典型使用场景

  • 追溯某次变更是谁执行的、执行了什么命令。
  • 排查提权失败:确认是密码错误还是不在授权列表。
  • 合规审计:提供特权操作的完整记录。
  • 排查异常登录与提权配合的入侵迹象。
  • 评估是否需要开启更详细的会话记录。

常用查询

常用查询
grep sudo /var/log/auth.log | tail -n 20            # Debian 系认证日志
grep sudo /var/log/secure | tail -n 20              # RHEL 系安全日志
journalctl -t sudo --since today --no-pager | tail -n 30
grep -E 'sudo.*(incorrect password|NOT in sudoers)' /var/log/auth.log | tail
grep -c 'sudo.*COMMAND' /var/log/auth.log           # 统计提权命令数量
ls /var/log/secure /var/log/auth.log 2>/dev/null    # 确认本机日志路径

字段与位置读法

项目含义使用要点
日志位置随发行版与日志方案不同先确认本机实际路径再查
操作者字段谁执行的结合终端字段判断来源
命令字段执行了什么审计的核心证据
失败记录密码错误或不在授权列表越权探测的重要线索
输入输出记录可开启的详细记录输出含敏感内容,慎重启用
留存与轮转日志保留周期轮转后历史丢失,合规场景要延长
开启输出记录会保存完整会话回放,可能包含敏感数据,使用前要评估合规与隐私影响;至少保留命令级别的记录供审计。
日志轮转后历史会丢失:合规场景应把特权操作日志接入远程日志收集,或延长本地留存周期。
只审计不监控等于没有:授权失败在短时间内激增的情况应配置告警,才能及时发现越权尝试。

易错点

  • 只保存日志不做监控,攻击行为在日志里静静躺着,直到事后排查才发现。
  • 开启完整会话记录却没有相应管控,敏感信息被写进日志文件,扩大泄露面。
  • 日志轮转周期过短且未接入远程收集,审计需要历史时已经查不到。
  • 只查成功记录不看失败记录,忽略越权探测与口令猜测的迹象。

数据来源与参考

  • man 5 sudoers(log_input/log_output)
  • man 5 sudo(日志行为)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌