NFSv4のサーバーがあります。リモートユーザーのホームフォルダーのコンテンツをローカルホストにマウントしています。コンテンツを読み書きすることはできますが、マウントされたボリュームでローカルホストからファイルの所有権を確認しているとき、それらはすべて対応するリモートユーザーおよびグループ(512)に属しています。ローカルホストのローカルユーザーおよびグループ(1000)に属しているように見せるための方法はありますか?
/ etc/exports on remote Host(IPは192.168.1.110)
/home/user512 192.168.1.142(rw,sync,all_squash,anonuid=512,anongid=512)
/ etc/fstab on local Host(IPは192.168.1.142)
192.168.1.110:/home/user512 /home/localuser/projects/project512 nfs rw,hard,intr,rsize=32768,wsize=32768 0 0
これは、idmappingが行うと想定されていることです。まず、有効にするのはクライアントとサーバーです。
# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
idmapキャッシュを消去し、idmapデーモンを再起動します。
# nfsidmap -c
# service rpcidmapd restart
これで、サーバーとクライアントは、数値IDの代わりに[email protected]のような文字列プリンシパルを送信します。クライアントとサーバーの両方のホストにbobアカウントが必要です。それでも、数値IDは異なる場合があります。
そこにすべてのピースがあります。 exportfsのmanページから、all_squash
は、すべてのuidとgidを匿名バージョンにマップします。あなたが書いたものはそれらの値を512に強制しました。1000に変更した場合、リモートホスト上のnfsサーバーはすべてを1000にし、アクセスを許可する必要があります。
nfsクライアントで、/ etc/idmapd.confを編集して変更します
[Mapping]
Nobody-User = myappuser
Nobody-Group = myappuser
これがnfsサービスを再起動した後