为什么一些 Linux 管理员在通过 NFS 公开文件夹之前要将其绑定到/export
(通过hosts.allow
和/etc/exports
)?
为什么不直接将 /etc/exports 指向您想要通过 NFS 公开的目录呢?
答案1
这是一个惯例问题,就像几乎所有与文件路径相关的东西一样。
一个技术原因可能是您可以为绑定的顶级目录配置自主访问控制,而不受其挂载位置的影响。这意味着如果您将磁盘分区或映像挂载到/mnt/foo
,并将其绑定到/export/foo
,则可以为每个单独的挂载点设置不同的权限掩码和不同的用户/组所有者。将其与 chroot 或基于容器的虚拟化相结合将进一步提供灵活性,您可以为不同的用户或不同的程序上下文分配不同数量的权限(或根本没有权限)。
但是,如果这种事情恰好在事物受约束的特定环境中不需要/export
,那么“为什么不……”这个问题就很空洞了:这样做或多或少是任意的,只是因为,可能是因为他们有一些安装或维护脚本,这些脚本假定这些文件夹已安装或绑定在/export
。
如何布局磁盘上的文件夹和挂载点的选择受以下因素影响:
- 系统管理员希望运行的软件假定或默认查看某些文件夹中的某些内容;
- 系统管理员自己的习惯、个人品味和偏好(又名“只是因为”);
- 操作系统基础安装中内置的配置脚本的默认设置;
- 系统管理员在安装/配置某些软件时可能会遇到挑战,需要移动或重组文件夹,以便以最少的努力使一切顺利(例如,系统管理员可能不值得花时间重新编译一个复杂的程序只是为了消除程序期望的绑定挂载)。
答案2
有根据的猜测:
安全原因。由于 NFS 默认不会将内容导出到文件系统边界之外,因此在将要导出的目录绑定挂载到特殊位置时,可以添加额外的数据安全性层。