要监控Linux用户对敏感文件的写入行为,核心是用auditd在内核层精准捕获write系统调用,需确保auditd服务active(running)、规则以.rules结尾并执行augenrules--load加载、使用-p w参数只监控真实写入动作、路径须为真实inode、通过ausearch-k key快速定位uid/euid/comm/exe/cwd等上下文。

要监控 Linux 用户对敏感文件的写入行为,核心不是泛泛开启所有审计,而是用 auditd 在内核层精准捕获真实 write 系统调用,并绑定具体用户、路径和意图。关键在于规则写得准、路径认得清、日志查得快。
确认 auditd 已真正就绪
服务没跑起来,规则全是空转:
- 运行
systemctl status auditd,必须显示 active (running) - 执行
auditctl -s | grep enabled,输出中 enabled 1 才表示内核审计已启用 - 检查
/etc/audit/rules.d/是否存在且可写,/var/log/audit/audit.log是否可读 - 若未安装:RHEL/CentOS 用
yum install audit,Ubuntu/Debian 用apt-get install auditd,装完立即systemctl enable --now auditd
只监“写”,不盯“读”或“属性”
写入篡改才是安全事件的核心,读取和 chmod 之类操作高频且干扰大:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 用
-p w—— 只捕获write、openat(带O_WRONLY)、truncate等真实内容修改动作 - 避免
-p r:像getpwent()这类库调用会频繁读/etc/passwd,加r会导致日志爆炸 - 慎用
-p a:除非明确需要追踪chown或隐藏文件行为,否则先聚焦“内容被改”本身 - 路径必须是真实 inode:执行
ls -i /etc/shadow,规则里写这个实际路径,别写软链接名(如/etc/shadow-)
规则必须持久化,重启不丢
临时加的 auditctl -w 规则在重启或 systemctl restart auditd 后全失效:
- 把规则写进
/etc/audit/rules.d/10-write.rules,例如:-w /etc/shadow -p w -k shadow_write - 文件名必须以
.rules结尾,每行一条规则,支持#注释 - 执行
sudo augenrules --load(RHEL/CentOS)或sudo systemctl restart auditd(Debian/Ubuntu)加载 - 验证是否生效:
sudo auditctl -l | grep shadow_write能看到即成功
快速定位谁、何时、用什么写了文件
日志里自带完整上下文,不用额外解析:
- 查最近写入:
sudo ausearch -k shadow_write -m SYSCALL -i --start 10 minutes ago - 提取关键字段:
sudo ausearch -k shadow_write -m SYSCALL -i | grep -E "(uid=|euid=|comm=|exe=|cwd=)" -
uid= 是实际执行用户,euid= 是有效身份(判断是否提权),comm= 是命令名(如
comm="vi"),exe= 是完整路径,cwd= 是操作时所在目录 - 如果
comm="(unknown)",说明进程已退出,需结合exe和父进程ppid向上追溯

















