mount --bind 不改变文件权限,但可通过挂载选项(如ro)、ACL或属主调整,在目标路径创建受控访问入口。例如只读绑定实现强制只读,ACL实现单用户精细控制,路径遮蔽强化最小权限原则。

Linux 中的 mount --bind 本身不直接管理文件权限,但它能配合权限机制实现“路径隔离+访问控制”的组合效果:把敏感目录映射到一个受限位置,再通过属主、ACL 或挂载选项(如 ro)限制对该映射点的访问,从而间接达成权限限制目的。
绑定挂载本身不改权限,但可改变访问入口
执行 sudo mount --bind /data/private /mnt/restricted 后,/mnt/restricted 的内容完全来自 /data/private,但它的访问行为由两层决定:
- 源目录原始权限:/data/private 的 chmod/chown 设置仍生效;
-
目标挂载点的上下文:你可以单独调整
/mnt/restricted的属主、ACL,或加只读挂载,不影响源目录其他用途。
也就是说,你不是在“修改数据权限”,而是在“新建一个受控入口”——就像给保险柜装了一把新锁,柜子本身没变,但钥匙只发给指定的人。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
用只读绑定实现强制只读访问
若需让某用户或服务只能读取、不能修改原始目录,可在绑定时加上 -o ro:
sudo mount --bind -o ro /data/configs /srv/app/configs- 即使源目录是
777,该映射路径下所有写操作(touch、rm、cp)都会报错Read-only file system; - 注意:
ro是挂载选项,卸载重挂为rw即可恢复可写,适合临时策略; - 若需持久化,写入
/etc/fstab: /data/configs /srv/app/configs none bind,ro 0 0
结合 ACL 实现单用户级映射访问控制
当标准属组权限不够细时,可对绑定后的目标路径设置 ACL,精准放行特定用户:
- 先完成绑定:
sudo mount --bind /var/log/audit /jail/logs; - 禁止其他人访问该映射点:
sudo chmod 700 /jail/logs; - 仅允许用户
auditor读取:sudo setfacl -m u:auditor:r-x /jail/logs; - 验证:
getfacl /jail/logs应显示user:auditor:r-x,且其他用户无权限; - 这样,
auditor能通过/jail/logs安全查看审计日志,而无法访问/var/log/audit的其他路径(如未设 ACL 的上级目录)。
隐藏原始路径,强化最小权限原则
绑定挂载天然具备“路径遮蔽”能力——目标目录原有内容被临时隐藏,只暴露源目录视图。这可用于安全加固:
- 例如将
/etc/shadow单独映射到容器内只读路径:mount --bind -o ro /etc/shadow /container/etc/shadow; - 容器进程只能看到 shadow 文件,且不可写,也接触不到
/etc下其他配置; - 宿主机上
/etc/shadow权限照常(600),而映射点还可额外设chown root:appgroup+chmod 440进一步收口; - 卸载后,目标路径自动恢复原内容,无残留风险。

















