直接运行mount命令即可列出内核实时维护的全部挂载项,它读取/proc/mounts,涵盖块设备、伪文件系统及隐式挂载,是发现异常挂载的第一道防线;配合findmnt树状展示和auditd日志可深度核查合法性。

直接运行 mount 命令就能列出内核当前维护的全部挂载项,包括真实块设备、伪文件系统(如 proc、sysfs、tmpfs)以及 bind mount 或 overlayfs 等隐式挂载结构。它读取的是 /proc/mounts —— 这是内核实时状态的权威来源,不依赖 /etc/fstab 或用户手动记录,因此是发现隐式、绕过常规配置的挂载项的第一道防线。
用 mount 快速筛查异常挂载点
重点关注三类高风险信号:
-
非常规挂载路径:如
/mnt/usb、/media/external、/run/mount/xxx、/var/lib/docker/overlay2下非标准子目录; -
可疑设备来源:
/dev/sd[b-z],/dev/nvme[0-9]n[0-9]p[0-9],/dev/loop[0-9]+(尤其在非启动/备份时段出现); -
空或问号设备标识:
? on /xxx type tmpfs或none on /xxx type overlay—— 需结合类型和选项判断是否属合法容器/沙箱,还是攻击者伪造的内存挂载。
可执行:
mount | awk '$1 ~ /^\/dev\/|^?$/ && $2 !~ /^\/(proc|sys|dev|run|boot|home|root)$/ {print}'
该命令过滤出:设备名以 /dev/ 开头或为 ?,且挂载点不在系统标准路径下的条目,大幅缩小人工核查范围。
结合 findmnt 检查嵌套与子挂载关系
mount 是线性列表,容易遗漏 bind mount 或 overlayfs 的深层挂载。findmnt 默认树状输出,能直观暴露“挂载中的挂载”:
- 运行
findmnt --tree,观察是否有非预期的缩进层级(例如/mnt/data下再挂一层/mnt/data/logs); - 对疑似路径做精准检查:
findmnt -D /mnt/external(显示完整选项),确认是否含noexec、nosuid等安全限制 —— 缺失这些选项的外部设备挂载更危险; - 查 UUID 或标签匹配:
findmnt -S "LABEL=USB_DISK",避免仅靠设备名/dev/sdb1判断(可能已被复用)。
关联 auditd 日志验证挂载行为合法性
mount 只告诉你“现在挂了”,但无法说明“谁、何时、为何挂”。必须交叉验证审计日志:
- 执行
sudo ausearch -m mount -ts yesterday -i | grep -E "(comm=|uid=|path=/dev/)",提取最近 24 小时所有挂载事件的进程名、执行用户和设备路径; - 若发现
comm=python3或comm=sh在非运维时段挂载/dev/sdc1到/tmp/mnt,且uid非 root 或运维账号,则高度可疑; - 注意:
systemd-udevd、udisks2等服务触发的挂载通常合法,但需比对ausearch -m mount -i | head -20中的exe=字段,确认二进制路径是否在/usr/lib/或/lib/下。
区分真挂载与残留条目
某些条目看似异常,实为正常残留:
- 卸载后
/proc/mounts未及时刷新(尤其容器退出后),可用ls /挂载点或stat /挂载点验证目录是否仍可访问; -
tmpfs类型挂载点(如/run/user/1000) 属系统必需,重点看其大小(df -h /run/user/1000)和选项(mount | grep tmpfs中是否含mode=700); -
overlay、squashfs多见于容器或 Live 系统,若主机无 Docker/Podman 且突然出现,需排查镜像注入痕迹。
不复杂但容易忽略。











