必须依赖auditd捕获chmod/chown等系统调用,记录uid、pid、exe路径、目标文件及时间戳,并辅以sudoers/passwd监控和auth.log交叉验证。

要真正记录所有对系统权限的修改操作,不能只看文件内容或时间戳变化,必须捕获底层行为本身——谁、在什么上下文、调用了哪个系统调用、改了哪个目标。核心依赖 auditd,辅以日志归档与交叉验证。
精准捕获 chmod/chown/setxattr 等权限变更行为
权限修改本质是系统调用触发的元数据变更,auditd 是唯一能直接监听这些调用的机制:
- 添加规则监控关键系统调用:sudo auditctl -a always,exit -F arch=b64 -S chmod,fchmod,fchmodat,chown,fchown,fchownat,setxattr -k perm_change
- 规则需持久化:写入 /etc/audit/rules.d/perm.rules,再执行 sudo augenrules --load
- 该规则覆盖所有路径(包括脚本内调用、cron 执行、SSH 非交互式命令),且记录 UID、PID、exe 路径、目标文件绝对路径和精确时间戳
同步审计 /etc/sudoers、/etc/passwd 等权限控制配置文件
用户提权能力的变更比单个文件权限更关键,需单独监控:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 监控配置文件写入:-w /etc/sudoers -p wa -k sudoers_change、-w /etc/passwd -p wa -k user_change、-w /etc/group -p wa -k group_change
- 监控提权命令执行:-a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_exec、-a always,exit -F path=/bin/su -F perm=x -k su_exec
- 这些规则应统一存入 /etc/audit/rules.d/priv.rules,避免分散管理
补充验证:从认证日志中提取 sudo/chown 命令线索
auditd 记录的是内核行为,而 auth.log 或 secure 记录的是权限提升过程,二者可交叉印证:
- Debian/Ubuntu:grep "sudo.*chmod\|sudo.*chown\|sudo.*chgrp" /var/log/auth.log | tail -30
- RHEL/CentOS:grep "sudo.*chmod\|sudo.*chown\|sudo.*chgrp" /var/log/secure | tail -30
- 注意:该方式仅捕获显式使用 sudo 的场景,不包含直接 root 执行、脚本调用或 setuid 程序行为
紧急排查时快速缩小范围的方法
若 auditd 未启用或日志已轮转,可用静态信息辅助定位:
- 对可疑文件运行 stat /path/to/file,重点关注 Change 时间(ctime),确认是否在异常时段发生
- 用 last -n 100 查看同一 ctime 窗口内有哪些用户登录过,特别留意 root、wheel 或 sudo 组成员
- 用 who -u 或 w 检查当前活跃会话,比对登录时间与 ctime 是否重合
- 注意:find -ctime 或 -cmin 只反映变更结果,无法回答“谁改的”,仅作初筛










