Linux上のNFS4に少し悩まされました。「そこに」ある情報は他の情報と矛盾するようで、他の情報は見つけにくいようです。だから、ここに私の注意を引いたいくつかの事柄があります。うまくいけば、そこにいる誰かがこれに光を当てることができます。
この質問は、Kerberosなどを使用しないNFS4のみに焦点を当てています。
1.輸出
exports
/ etc / exportsの構造に関するマンページにあいまいな情報があります。
から引用するにはexports(5)
:
また、各行には、オプション名が後に続くダッシュ( "-")の形式で、パス名の後にデフォルトオプションの1つ以上の指定がある場合があります。
オプションリストは、その行の後続のすべてのエクスポートにのみ使用されます。
「その行での後続のエクスポートのみ」とはどういう意味ですか?
1.2 fsid=0
不要になりましたか?
linux-nfsリストに fsid = 0が不要になったというコメントを見つけたとき、fsidを探していました。今、私はただ混乱している、私はnfs4でそれを必要とするかどうか?!
2.エクスポートされていないディレクトリはまだマウント可能
次のツリーがあるとします。
/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian
このfstabエントリには次のエントリがあります。
/dev/disk/by-label/users /mnt/users ext4 defaults 0 0
/dev/disk/by-label/distr /mnt/distr ext4 defaults 0 0
/mnt/users /exp/users none bind 0 0
/mnt/distr /exp/distr none bind 0 0
そして、私のエクスポートはまさにこれです:
/exp 192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)
そしてexportfs -arv
示しています:
exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp
次に、なぜこれを行うことができ、クライアントでエラーが発生しないのですか:
mount -t nfs4 server:/exp/users /tmp/test
にもかかわらず/exp/users
輸出されていませんか?このディレクトリはエクスポートしませんでした。/dev/disk/by-label/users
指定しない限り、の内容は表示されませんcrossmnt
が、まだディレクトリに書き込むことができます。基礎となるディレクトリにそこに行くためにすべて私の書き込みがで/exp/users
たとき、私を見ることができますumount /exp/users; ls /exp/users
。..
3.の奇妙なケース showmount -d server
で述べたようにrpc.mountd(8)
、このコマンドは、現在クライアントによってマウントされているディレクトリ、またはの古いエントリ/var/lib/nfs/rmtab
を表示できるはずです:
rpc.mountdデーモンは、/ var / lib / nfs / rmtabファイルにエントリを追加することにより、成功したすべてのMNT要求を登録します。NFSクライアントからUMNT要求を受信すると、rpc.mountdは、そのエクスポートのアクセス制御リストでその送信者がエクスポートにアクセスできる限り、/ var / lib / nfs / rmtabから一致するエントリを削除するだけです。
(...)
ただし、/ var / lib / nfs / rmtabの内容が正確であることを保証するものはほとんどないことに注意してください。クライアントは、UMNTを呼び出した後でもエクスポートへのアクセスを継続できます。クライアントがUMNT要求を送信せずに再起動すると、そのクライアントの/ var / lib / nfs / rmtabに古いエントリが残ります。
これを読んだ後、私は確かに疑問に思う:
- このタイプのクライアント情報を公開することは、ひどく安全ではありません。
- サーバー管理者が多くの古いクライアントを持つrmtabに縛られていることに気付いていませんか。
- これは、nfs4ディレクトリをマウントするクライアントが
mount -v
、何かがマウントされていても「何もマウントされていない」などの出力を取得する理由ですか?
nfs4に関しては他にも多くの質問がありますが、当面はこれを続けます。:)