web-dev-qa-db-ja.com

ローカルユーザーのUIDとGIDをマウントされたNFS共有にマッピングする

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
36
Alexander

これは、idmappingが行うと想定されていることです。まず、有効にするのはクライアントとサーバーです。

# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping

idmapキャッシュを消去し、idmapデーモンを再起動します。

# nfsidmap -c
# service rpcidmapd restart

これで、サーバーとクライアントは、数値IDの代わりに[email protected]のような文字列プリンシパルを送信します。クライアントとサーバーの両方のホストにbobアカウントが必要です。それでも、数値IDは異なる場合があります。

35
kofemann

そこにすべてのピースがあります。 exportfsのmanページから、all_squashは、すべてのuidとgidを匿名バージョンにマップします。あなたが書いたものはそれらの値を512に強制しました。1000に変更した場合、リモートホスト上のnfsサーバーはすべてを1000にし、アクセスを許可する必要があります。

5
becomingwisest

nfsクライアントで、/ etc/idmapd.confを編集して変更します

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

これがnfsサービスを再起動した後

3
c4f4t0r