linux中查看历史sudo命令需先确认日志位置:debian/ubuntu系查/var/log/auth.log,rhel/centos系查/var/log/secure;常用sudo grep 'sudo:' 提取记录;systemd系统推荐用sudo journalctl _comm=sudo;长期审计可配置defaults logfile="/var/log/sudo.log"。

Linux 系统中查看历史执行过的所有 sudo 命令,核心是查认证日志文件,并结合系统类型和日志配置灵活使用命令工具。
确认日志位置:先看你的系统属于哪一类
不同发行版默认记录位置不同,必须先判断:
- Debian / Ubuntu / Mint 等:日志在 /var/log/auth.log
- RHEL / CentOS / Fedora / Rocky / AlmaLinux:日志在 /var/log/secure
不确定时可运行:ls -l /var/log/auth.log /var/log/secure 2>/dev/null
哪个文件存在且有内容,就用哪个。
快速提取所有 sudo 操作记录
用 grep 筛选带 sudo: 的行(注意冒号),这是最稳定的方式:
- Ubuntu/Debian:
sudo grep 'sudo:' /var/log/auth.log - CentOS/RHEL:
sudo grep 'sudo:' /var/log/secure
每条记录包含时间、用户、终端、当前路径、目标用户(如 root)、执行的完整命令。例如:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
用 journalctl 查 systemd 日志(推荐用于现代系统)
如果系统使用 systemd(几乎所有新版发行版都用),journalctl 能聚合更全的日志,无需关心文件路径:
- 查全部 sudo 记录:
sudo journalctl _COMM=sudo - 查最近 1 小时内的 sudo 操作:
sudo journalctl _COMM=sudo --since "1 hour ago" - 实时跟踪新 sudo 操作:
sudo journalctl -u systemd-journald -f | grep sudo(或直接sudo journalctl -f _COMM=sudo)
优势:不依赖日志轮转,支持时间范围、服务单元等精细过滤,且能跨多个日志文件检索。
启用独立 sudo 日志(长期审计建议)
若需更清晰、可管理的记录,可配置 sudo 写入专属日志文件:
- 运行
sudo visudo - 添加一行:
Defaults logfile="/var/log/sudo.log" - 保存后,所有后续 sudo 操作都会写入该文件,可直接
sudo tail -f /var/log/sudo.log查看
注意:该文件需手动创建并设置权限(sudo touch /var/log/sudo.log && sudo chmod 600 /var/log/sudo.log),且要确保 logrotate 已为其配置轮转规则,避免占满磁盘。










