我有以下出口
/exports/nfs 192.168.1.0/24(fsid=1234,sec=krb5p,rw,no_subtree_check,root_squash,crossmnt,async)
/exports/share 192.168.1.0/24(fsid=2345,ro,no_subtree_check,all_squash,crossmnt,insecure)
这两个共享都具有相同的目录绑定挂载在其中
mount --bind /mnt/bin /exports/nfs/bin
mount --bind /mnt/bin /exports/share/bin
我的目标是公开相同的信息,但只有使用 krb5 的共享才是可写的。
每当客户端挂载 /exports/share 时,他们无法 ls 绑定的目录
ls: cannot access '/mnt/share/bin': Operation not permitted
我在 NFS 服务器上看到以下内容
rpc.mountd[12080]: /exports/nfs/bin and /exports/share/bin have same filehandle for 192.168.1.0/24, using first
我如何才能将这些目录一个 RW(krb5p)和另一个 RO(无 krb5)公开到 192.168.1.0/24?
答案1
我能够解决这个问题。
我需要导出绑定目录,并在其上设置唯一的 fsid。我原本以为共享根目录上的 fsid 就足够了。
/exports/nfs 192.168.1.0/24(fsid=1234,sec=krb5p,rw,no_subtree_check,root_squash,crossmnt,async)
/exports/nfs/bin 192.168.1.0/24(fsid=1235,sec=krb5p,rw,no_subtree_check,root_squash,crossmnt,async)
/exports/share 192.168.1.0/24(fsid=2345,ro,no_subtree_check,all_squash,crossmnt,insecure)
/exports/share/bin 192.168.1.0/24(fsid=2346,ro,no_subtree_check,all_squash,crossmnt,insecure)