linux配置sudo专用日志需三步:创建权限为600的/var/log/sudo.log;在rsyslog中用tab分隔添加local2.debug /var/log/sudo.log规则并重启服务;通过visudo设置defaults logfile="/var/log/sudo.log"、loglinelen=0和!syslog。

Linux 中配置 sudo 日志,核心是两步:启用 sudo 自身的日志记录功能,并让系统日志服务(rsyslog)把相关消息写入指定文件。默认情况下,sudo 操作只记在 /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS)里,内容较简略;要获得完整、独立、可审计的操作记录,需手动配置专用日志。
1. 创建日志文件并设置权限
先创建一个专用于 sudo 的日志文件,确保只有 root 可读写:
sudo touch /var/log/sudo.logsudo chmod 600 /var/log/sudo.logsudo chown root:root /var/log/sudo.log
2. 配置 rsyslog 接收 sudo 日志
sudo 默认使用 local2 设施(facility)发送日志。需要告诉 rsyslog 把这些消息存到刚才的文件中:
- 编辑
/etc/rsyslog.conf或在/etc/rsyslog.d/下新建配置文件(如sudo.conf) - 添加一行:
local2.debug /var/log/sudo.log(注意:中间必须是 Tab 键,不是空格) - 保存后重启服务:
sudo systemctl restart rsyslog(或sudo /etc/init.d/rsyslog restart)
3. 修改 sudoers 启用日志输出
用 visudo 安全编辑 /etc/sudoers,在文件末尾添加三行:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
Defaults logfile="/var/log/sudo.log"—— 指定日志路径 -
Defaults loglinelen=0—— 禁用行截断,保证长命令完整记录 -
Defaults !syslog—— 关闭向系统日志(auth.log)的默认输出,避免重复
保存退出时,visudo 会自动语法检查,出错则不允许保存。
4. 验证日志是否生效
执行一条 sudo 命令,比如 sudo ls /root,然后查看日志:
sudo tail -n 3 /var/log/sudo.log- 正常应看到类似:
Oct 14 04:55:23 host user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/bin/ls /root
每条记录包含时间、主机名、用户名、终端、当前路径、目标用户、执行命令等关键字段,满足审计要求。
不复杂但容易忽略的是 Tab 分隔和 !syslog 的配合——少了它,日志会同时出现在两个地方,管理起来反而混乱。










