CentOSのNFS経由で/share/foo
や/share/bar
などを共有したい。
私は遭遇しました この一般的な問題 :
mount.nfs4: mounting 192.168.101.254:/share/foo failed, reason given by server: No such file or directory
解決策は、親ディレクトリ/share
をfsid=0
でエクスポートしてから、/share
に関連するパスを使用してクライアントにコマンドをマウントすることです。
サーバーはファイルをエクスポートします:
/share 192.160.0.0/16(rw,fsid=0)
/share/foo 192.160.0.0/16(ro)
/share/bar 192.160.0.0/16(ro)
クライアントfstab:
192.168.101.254:/foo /share/foo nfs4 intr
しかし、これをサーバーからエクスポートしたい場合:
/share/private 192.168.101.123(ro)
それでは、多くのアドレスが192.168.101.123
とそのサブディレクトリにアクセスできるため、これは/share
以外のマシンでは利用できませんか?
もしそうなら、これは容認できないセキュリティホールです。そうでない場合、クライアントが/share/private
にアクセスできるにもかかわらず、クライアントが/share
にアクセスできないという私の保証は何ですか?
要約すると、サーバーが/share/foo
、/share/bar
、および/share/private
を異なるクライアントマシンにエクスポートする必要がありますnfs4。
これを処理する最良の方法は、バインドマウントを使用することです。NFSエクスポート専用のフォルダーを作成します。
mkdir /srv/nfs
次に、これを/ etc/fstabに追加します。
/share/foo /srv/nfs/foo none defaults,bind 0 0
/share/foo /srv/nfs/bar none defaults,bind 0 0
/ etc/exportsはまったく同じですが、/ shareを/ srv/nfsに置き換えて保存します。また、/ etc/exportsのfooおよびbarエントリに一意のfsidを必ず割り当ててください。