web-dev-qa-db-ja.com

nfs4_disable_idmappingパラメータは正確には何をしますか?

NFSv4でユーザー/グループIDマッピング(変換)を実験しています。私が達成したいのは、名前ベースのID変換です。これは、サーバーとクライアントの実際のUID/GIDに依存しません。

多くのガイドや記事では、IDマッピングを機能させるには、クライアントのnfsモジュールで_nfs4_disable_idmapping_パラメータを_0_(別名N)に設定し、nfsdサーバー上のモジュール。ただし、このパラメーターが正確に何を行うかについての情報やドキュメントは見つかりませんでした。

実験として、NFSv4サーバーとクライアントを(_sec=krb5_を使用して)構成し、意図的にこれらのパラメーターをデフォルト値(マッピング無効)のままにしました。サーバーでマッピングが無効になっていることを確認できます。

_$ cat /sys/module/nfsd/parameters/nfs4_disable_idmapping 
Y
_

そしてクライアント上で:

_$ cat /sys/module/nfs/parameters/nfs4_disable_idmapping 
Y
_

サーバーにユーザーbob(uid=1002)sam(uid=1001)を、クライアントにユーザーbob(uid=1003)sam(uid=1004)を作成しました。ご覧のとおり、UIDは一致していませんが、ユーザーは引き続き正しくマッピングされています。上のbobユーザーが作成したファイルは、サーバー上のbobが所有していると見なされ、その逆も同様です。

さらに、クライアントのログを見ると:

_nfsidmap[1874]: key: 0x322c739a type: uid value: [email protected] timeout 600                                            
nfsidmap[1874]: nfs4_name_to_uid: calling nsswitch->name_to_uid                                                      
nfsidmap[1874]: nss_getpwnam: name '[email protected]' domain 'home.lan': resulting localname 'bob'                       
nfsidmap[1874]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0                                                   
nfsidmap[1874]: nfs4_name_to_uid: final return value is 0       
_

そしてサーバー上:

_rpc.idmapd[1717]: nfsdcb: authbuf=gss/krb5p authtype=user                                                                                                                   
rpc.idmapd[1717]: nfs4_uid_to_name: calling nsswitch->uid_to_name                                                                                                           
rpc.idmapd[1717]: nfs4_uid_to_name: nsswitch->uid_to_name returned 0                                                                                                        
rpc.idmapd[1717]: nfs4_uid_to_name: final return value is 0                                                                                                                 
rpc.idmapd[1717]: Server : (user) id "1002" -> name "[email protected]"  
_

彼らは両方とも、IDマッピングが実際に動作していることを示唆しています"by name"ではなく、"by id"

だから私の質問は、そのときの_nfs4_disable_idmapping_パラメータは何ですか?それがIDマッピングに目に見える影響を与えていないように見える場合は?

2
Oleg

悪いテストケースにぶつかった。カーネルによると ドキュメントnfs4_disable_idmappingオプションは、sec=sys 使用されている。

3
kofemann