autrace是Linux audit子系统提供的轻量级进程行为追踪工具,用于临时监控单个敏感命令的系统调用、文件访问等行为;它自动添加并移除audit规则,依赖auditd服务和内核CONFIG_AUDIT支持,日志存于/var/log/audit/audit.log,需用ausearch/aureport解析。

Autrace 是 Linux audit 子系统提供的轻量级进程行为追踪工具,本质是为指定程序自动添加 audit 规则并启动其运行,适合临时监控单个敏感命令(如 passwd、sudo、curl、ssh)的系统调用、文件访问、权限变更等行为。它不替代持续性审计策略,但对快速排查异常操作非常实用。
一、确认 auditd 服务已启用并支持 autrace
autrace 依赖内核 audit 框架和用户态 auditd 服务。需确保:
- auditd 正在运行:sudo systemctl status auditd,若未启动则执行 sudo systemctl start auditd
- 内核启用 audit 支持:zcat /proc/config.gz | grep CONFIG_AUDIT(或检查 /boot/config-$(uname -r)),输出应含 CONFIG_AUDIT=y
- autrace 命令存在:which autrace,通常随 audit-tools 或 audit 包安装(如 Ubuntu/Debian 安装 auditd,CentOS/RHEL 安装 audit)
二、用 autrace 监控单个敏感命令(例如 passwd)
执行 sudo autrace /usr/bin/passwd 后,autrace 会:
- 自动注册一条仅匹配该进程 execve 的 audit 规则(规则 ID 可查 sudo auditctl -l)
- 启动 passwd 并等待其退出
- 自动移除对应规则,避免规则堆积
注意:被监控进程必须由 autrace 启动(不能后台运行或被其他 shell 封装),否则无法捕获完整生命周期。若需监控已运行进程,应改用 auditctl -a always,exit -F pid=XXX 手动加规则。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
三、查看与解析 autrace 生成的审计日志
autrace 日志默认写入 /var/log/audit/audit.log,可用以下方式提取:
- 过滤本次 autrace 记录:sudo ausearch -m execve,open,openat,chmod,chown,setuid -i | aureport -f -i
- 按事件时间排序并高亮关键字段:sudo ausearch --start recent -m execve | aureport -f --key --summary
- 重点关注字段:exe(执行路径)、cwd(工作目录)、fname(操作文件)、comm(命令名)、a0-a3(系统调用参数十六进制值)
例如发现 exe="/usr/bin/passwd" 调用了 openat(AT_FDCWD, "/etc/shadow", O_RDONLY),即说明其读取了影子密码文件——属正常行为;若出现 openat(..., "/root/.ssh/id_rsa", ...) 则需警惕。
四、注意事项与常见问题
autrace 是便捷工具,但有明确边界:
- 不记录子进程继承的 audit 规则——若 passwd 调用 pam_exec 加载外部脚本,那些脚本行为不会被 autrace 自动覆盖,需单独规则
- 日志量大时建议配合 ausearch -i -ts today | grep -E "(passwd|sudo)" 快速筛选
- 避免在生产环境长期用 autrace 监控高频命令(如 ls、cat),可能拖慢系统并撑爆日志
- 若提示 "No rules to list" 或无日志输出,先检查 sudo auditctl -s 中 enabled 是否为 1,且 failure 字段非 2(表示失败不记录)
不复杂但容易忽略。

















