要分析特定时间段内账户的sudo特权变更,须先配置auditd监控/etc/sudoers、/etc/sudoers.d/、visudo和sudo执行事件,再用aureport按-key和--start/--end筛选日志,结合ausearch、diff及sudo -l人工关联上下文确认实际变更。

要利用 aureport 分析特定时间段内全部账户的 sudo 特权变更,核心是捕获并解析与 sudoers 配置修改、visudo 调用、sudo 权限提升(如通过 sudo -l 或执行带特权命令)相关的审计日志事件。注意:aureport 本身不直接记录“特权变更”这一抽象行为,而是依赖底层 auditd 是否已配置规则来监控关键文件和系统调用。
确保 auditd 已监控 sudo 相关关键路径
若未提前配置审计规则,aureport 将无数据可查。需确认以下规则已添加至 /etc/audit/rules.d/sudo.rules 并重载:
-
-w /etc/sudoers -p wa -k sudo_config(监控主配置文件读写与属性变更) -
-w /etc/sudoers.d/ -p wa -k sudo_config(监控包含目录) -
-a always,exit -F path=/usr/bin/visudo -F perm=x -k sudo_edit(记录visudo执行) -
-a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_exec(可选,记录所有sudo命令调用)
执行 sudo augenrules --load 或 sudo systemctl restart auditd 生效。
用 aureport 按时间范围筛选 sudo 相关事件
使用 --start 和 --end 指定精确时间段(支持 HH:MM:SS、YYYY-MM-DD 或相对时间如 today、2 days ago),配合 -k(key)或 -m(message type)过滤:
- 查配置修改:
aureport -k sudo_config --start "2024-05-01 00:00:00" --end "2024-05-07 23:59:59" --summary - 查 visudo 编辑行为:
aureport -k sudo_edit --start lastweek --format csv | grep -v "acct=\"root\""(排除默认 root,找其他编辑者) - 查所有 sudo 执行及调用者:
aureport -m EXECVE --start yesterday --field sudo_exec | awk -F', ' '{print $5,$7}' | sort -u(提取 uid 和 command)
识别实际的“特权变更”行为
日志中不会直接出现“用户 A 获得 NOPASSWD 权限”字样,需人工关联上下文:
- 匹配
sudo_config事件中的name="/etc/sudoers"与后续EXECVE中visudo的uid,确定谁修改了配置 - 查看修改前后
/etc/sudoers的 diff(需配合auditctl -e 2开启日志完整性,或依赖备份/版本控制) - 结合
ausearch -m USER_CMD -i --start today | grep sudo查看普通用户是否运行过sudo -l,可能暗示其在验证新权限
导出并交叉验证结果
将关键事件导出为可读格式,便于人工审查:
aureport -k sudo_config --start "2024-05-01" --end "2024-05-07" --output report-sudo-config.logausearch -k sudo_edit --start lastweek --raw | aureport -f -i > report-visudo.log- 用
awk '{print $1,$2,$13}' report-sudo-config.log | sort -u快速列出所有修改时间和涉及用户
最终结论需结合配置文件快照、用户登录日志(lastlog)、以及 sudo -l -U username 当前输出比对得出。










