NFSバインドマウントディレクトリは同じファイルハンドルを持つ

NFSバインドマウントディレクトリは同じファイルハンドルを持つ

以下の輸出品があります

/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

これらのディレクトリの 1 つを RW (krb5p) として、もう 1 つを 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)

関連情報