在 Linux 中“隐藏 mount 点”通常有多种含义,下面按常见需求分类说明做法。
最简单方式:把挂载点设为隐藏目录(以 . 开头)
mkdir -p /mnt/.secret
mount /dev/sdb1 /mnt/.secret
普通 ls 不会显示,需要 ls -a 才看得到。
chmod 700 /mnt/secret
chown root:root /mnt/secret
非 root 用户无法进入或列出内容。
mount / df 中的挂载信息mount --bind + 私有挂载(推荐)mkdir -p /real /hidden
mount /dev/sdb1 /real
mount --bind /real /hidden
然后在 /hidden 使用,可限制谁知道 /real。
适合程序或容器级隐藏:
unshare --mount --fork bash
mount /dev/sdb1 /mnt/secret
该挂载只对当前 shell 及其子进程可见,其他终端 mount 看不到。
private / slave 挂载属性mount --make-private /mnt/secret
防止挂载传播到其他 namespace。
/etc/fstab 中限制用户可见/dev/sdb1 /mnt/secret ext4 noauto,user,rw 0 0
或完全不写,手工 root 挂载。
hidepid 挂载 /proc防止用户看到其他进程挂载行为:
mount -o remount,hidepid=2 /proc
/etc/fstab 加:x-gvfs-hide
例:
/dev/sdb1 /mnt/secret ext4 defaults,x-gvfs-hide 0 0
Nautilus / Dolphin 不显示该盘。
组合方案:
unshare --mount
mkdir -p /mnt/.x
mount /dev/sdb1 /mnt/.x
chmod 700 /mnt/.x
✅ 其他用户
❌ 看不到目录
❌ mount 看不到
❌ df 看不到
| 目的 | 推荐方式 |
|---|---|
| 简单隐藏 | .目录 |
| 用户不可见 | 权限 700 |
| 进程级隐藏 | mount namespace |
| GUI 不显示 | x-gvfs-hide |
| 安全隔离 | namespace + private |
如果你能说明:
root我可以给你最合适的精确方案。