Linux中的bind挂载是本地路径映射,将一个已存在目录实时镜像到另一路径,两者共享同一数据;需用sudo mount --bind命令建立映射,支持-o bind,ro(只读)、-o bind,rbind(递归)等选项,持久化需写入/etc/fstab,卸载必须用umount而非rm -rf。

Linux 中的 bind 挂载不是网络共享,而是本地路径映射——它把一个已存在的目录“实时镜像”到另一个路径,两个路径指向同一份数据,不复制、不依赖网络,也不需要 NFS 或 Samba。
bind 挂载的核心用法
只需一条命令就能建立映射:
- 确保源目录和目标目录都已存在(例如
/data/app-logs和/var/log/app) - 执行:
sudo mount --bind /data/app-logs /var/log/app - 验证是否生效:
findmnt -t none | grep app或直接ls /var/log/app查看内容是否与源一致
让 bind 挂载支持只读或递归
常用控制可通过 -o 参数添加:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 只读映射(源仍可写,目标不可写):
sudo mount -o bind,ro /src /dst - 递归绑定(包含所有子挂载点,如容器内嵌套挂载):
sudo mount -o bind,rbind /src /dst - 组合使用(只读 + 递归):
sudo mount -o bind,rbind,ro /src /dst
开机自动挂载(持久化)
临时挂载重启后失效,要长期生效需写入 /etc/fstab:
- 在 fstab 中添加一行:
/data/app-logs /var/log/app none bind 0 0 - 注意字段顺序:源路径、目标路径、文件系统类型(填
none)、选项(bind)、dump(0)、pass(0) - 测试配置是否正确:
sudo mount -a,无报错即生效
卸载与安全提醒
卸载必须用 umount,不能删目录:
- 正确卸载:
sudo umount /var/log/app - 切勿执行
rm -rf /var/log/app——这会删除源目录里的真实数据 - 若提示 “device is busy”,可用
lsof +D /var/log/app查进程,或加-l参数强制延迟卸载










