所以我有一个 NFS 服务器,可以将大部分共享导出到整个网络。其中一位客户要求写访问作为根到共享的子目录。该客户端仅需要访问该子目录(并且我不想授予客户端对其他导出的完全访问权限)。我不想向其他主机授予相同的权限。
经过一番摆弄后,我想出了以下/etc/exports
文件:
/media/DATA 192.168.0.0/24(ro,fsid=0,no_subtree_check)
/media/DATA/photos 192.168.0.30(rw,fsid=0,no_root_squash,no_subtree_check)
正如您所看到的,(至少)有两个特点:
- 同一目录 (
/media/DATA/photos
) 为主机导出两次192.168.0.30
(由于192.168.0.30
是 的子集192.168.0.0/24
,并且/media/DATA/photos
是 的子目录/media/DATA
) - 有两个出口
fsid=0
这有效,就像我现在可以做的那样:
192.168.0.99
运行时mount nfsserver:/ /mnt
我会得到罗访问(使用 root-squashing)nfsserver:/media/DATA/
目录192.168.0.30
运行时mount nfsserver:/ /mnt
我会得到读写访问(即使根!)到nfsserver:/media/DATA/photo/
目录
耶!
然而:这能保证有效吗?
我还没有找到任何关于如果两个导出都获得该fsid=0
选项会发生什么的文档。哪一个会优先?
另外:我很高兴不将 192.168.0.30 的导出重新设置为/media/DATA/photos
(si 我需要 mount nfsserver:/photos
)。但是改变线路来/media/DATA/photos 192.168.0.30(rw,no_root_squash,no_subtree_check)
删除读写和无根南瓜选项。
旁注:我找到了一个7岁的孩子红帽支持问题这应该可以解决这个问题。但由于我使用 Debian 并且不打算很快切换到 Redhat,所以我无意为这个问题购买订阅)