NFS4:rpc.idmapd或nfs.idmap upcall?

https://www.kernel.org/doc/Documentation/filesystems/nfs/idmapper.txt指出:

The file /etc/request-key.conf will need to be modified so /sbin/request-key can direct the upcall. The following line should be added: #OP TYPE DESCRIPTION CALLOUT INFO PROGRAM ARG1 ARG2 ARG3 ... #====== ======= =============== =============== =============================== create id_resolver * * /usr/sbin/nfs.idmap %k %d 600 This will direct all id_resolver requests to the program /usr/sbin/nfs.idmap. 

从Ubuntu 12.04开始,request-key.conf中不存在这个条目。 我看到了几个不同的冲突报告:

  1. nfs.idmap upcall已经过时,应该使用rpc.idmapd
  2. rpc.idmapd已经过时,应该使用nfs.idmap
  3. 内核自动在两者之间玩弄(它更喜欢?)

任何人都可以解释这一点吗?

谢谢。

从debugging中可以明显看出,Ubuntu使用rpc.idmap作为发货(至less12.04)。

考古学:你需要一个编译了nfsidmap机制的内核(选项是'new'idmap – 所以我认为这是rpc.idmap的替代,因此)使nfsidmap调用工作。 另外, http ://www.mjmwired.net/kernel/Documentation/filesystems/nfs/idmapper.txt包含内核文档(写起来是3.5),这表明首先调用rpcidmap,我假设它指示方法的偏好您的文档似乎是一个旧的副本)。

实际的信息:nfsidmapp是一个更广泛的请求密钥安全系统的一部分,这是对内核的一个相对较新的补充(“相对”,因为它在那里已经有一年多的时间了,但是Ubuntu发布周期就相当短)。 看来,Ubuntu目前还不支持整个机制。

nfs-utils软件包包含了rpc.idmap和nfsidmap二进制文件,当然nfsidmap的文档也被写成“你正在使用的这个东西,它就像这样工作”。 所以不幸的是,这些命令的文档并没有给你任何线索,实际上设置。

(也据我所知,rpc.idmap不会翻译“开放”调用身份证,只有“统计”和类似,导致奇怪的情况下,你不能写的文件,统计说你拥有,但可以写文件由nobody拥有…我不知道nfsidmap是否改变了这种行为。)