要记录所有文件系统的手动挂载与卸载操作,需通过auditd监控mount、umount2系统调用及/bin、/usr/bin、/usr/sbin下的mount和umount命令路径,并将规则写入/etc/audit/rules.d/以持久化,确保覆盖所有手动操作场景。

要记录所有文件系统的手动挂载(mount)与卸载(umount)操作,关键在于捕获触发这些行为的系统调用和关键二进制程序。auditd 本身不直接识别“挂载事件”,但可通过监控底层系统调用(如 mount, umount, umount2)以及常用命令路径(如 /bin/mount, /bin/umount, /usr/bin/mount, /usr/bin/umount)实现精准审计。
以下方法在主流 Linux 发行版(RHEL/CentOS 7+/8+, Ubuntu 20.04+)上实测有效,无需修改内核或启用复杂策略。
监控核心系统调用(推荐方式)
挂载/卸载本质是内核级操作,由 mount(2) 和 umount2(2) 系统调用完成。auditd 可直接监听这些调用,覆盖所有调用来源(包括脚本、自定义工具、非标准路径命令)。
执行以下规则(需 root 权限):
sudo auditctl -a always,exit -F arch=b64 -S mount -k mount_op sudo auditctl -a always,exit -F arch=b64 -S umount2 -k umount_op
✅ 说明:
PyCharm 2026.2.0.1 Linux版下载PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
-a always,exit表示在系统调用退出时记录;-F arch=b64指定 64 位架构(x86_64),若为 32 位系统改用b32;-S mount/-S umount2是内核系统调用名(注意不是命令名);-k mount_op为日志打上关键词,便于后续检索。
⚠️ 注意:部分旧内核(如 CentOS 7.4 之前)可能需额外启用
CONFIG_AUDITSYSCALL=y,现代发行版默认已开启。
同时监控常用命令路径(增强兼容性)
有些环境(如容器、精简系统)可能通过 mount 命令封装调用,或使用 busybox mount 等变体。补充监控可执行文件路径更稳妥:
sudo auditctl -w /bin/mount -p x -k mount_cmd sudo auditctl -w /bin/umount -p x -k umount_cmd sudo auditctl -w /usr/bin/mount -p x -k mount_cmd sudo auditctl -w /usr/bin/umount -p x -k umount_cmd sudo auditctl -w /usr/sbin/mount -p x -k mount_cmd sudo auditctl -w /usr/sbin/umount -p x -k umount_cmd
✅ 说明:
-w监控路径,-p x表示只要该文件被执行就记录;- 覆盖常见安装路径,避免因发行版差异漏监。
永久保存规则(重启不丢失)
将上述规则写入规则文件,确保服务重启后持续生效:
echo '-a always,exit -F arch=b64 -S mount -k mount_op' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-a always,exit -F arch=b64 -S umount2 -k umount_op' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-w /bin/mount -p x -k mount_cmd' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-w /bin/umount -p x -k umount_cmd' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-w /usr/bin/mount -p x -k mount_cmd' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-w /usr/bin/umount -p x -k umount_cmd' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-w /usr/sbin/mount -p x -k mount_cmd' | sudo tee -a /etc/audit/rules.d/mount.rules echo '-w /usr/sbin/umount -p x -k umount_cmd' | sudo tee -a /etc/audit/rules.d/mount.rules
然后重载规则:
sudo augenrules --load sudo systemctl restart auditd
✅
augenrules --load会合并/etc/audit/rules.d/*.rules并写入/etc/audit/rules.d/audit.rules,是 RHEL/CentOS/Ubuntu 的标准做法。
查看与验证日志
执行一次挂载和卸载操作测试:
sudo mkdir -p /mnt/test sudo mount -t tmpfs tmpfs /mnt/test sudo umount /mnt/test
检索审计日志:
# 查所有挂载相关记录(含系统调用和命令执行) sudo ausearch -k mount_op -k mount_cmd -i | grep -E "(mount|umount)" # 或按时间范围精确查最近10分钟 sudo ausearch -k mount_op -k mount_cmd -ts recent | aureport -f -i
典型日志字段包含:
-
comm=:触发命令(如mount、bash) -
exe=:实际执行文件路径 -
cwd=:当前工作目录 -
key=:你设置的关键词(mount_op/mount_cmd) -
auid=:原始登录用户 ID(即使sudo切换也保留)
补充说明:不建议监控 /etc/fstab 或 systemd 自动挂载
-
/etc/fstab是配置文件,修改它本身不等于挂载发生; -
systemd的.mount单元属于开机自动挂载,不属于“手动”范畴; - 本方案专注捕获运行时主动执行的 mount/umount 行为,符合安全审计对“谁、何时、在哪、执行了什么”的溯源要求。
规则生效后,每次手动挂载或卸载都会留下完整上下文日志,可用于合规检查、异常行为分析或事故回溯。











