Linux-Kernel

NFS4:rpc.idmapd 或 nfs.idmap 呼叫?

  • September 10, 2012

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. 核心會自動在兩者之間切換(它更喜歡哪個?)

任何人都可以對此有所了解嗎?

謝謝。

從調試中可以清楚地看出,Ubuntu 使用的是出廠時的 rpc.idmap(至少到 12.04)。

考古學:您需要一個帶有 nfsidmap 機制的核心(選項是“新”idmap - 因此我假設它是 rpc.idmap 的替代品)才能使 nfsidmap 呼叫正常工作。此外,http ://www.mjmwired.net/kernel/Documentation/filesystems/nfs/idmapper.txt 包含建議首先呼叫 rpcidmap 的核心文件(寫作時為 3.5),我認為這表明方法的偏好(您的文件似乎是舊副本)。

實用資訊:nfsidmapp 是更廣泛的請求密鑰安全系統的一部分,該系統是核心中相對較新的補充(“相對”,因為它已經存在一年多,但 Ubuntu 發布週期相當短)。看來 Ubuntu 還不支持整個機制。

nfs-utils 包包括 rpc.idmap 和 nfsidmap 二進製文件,當然,nfsidmap 的文件被寫成“你正在使用的這個東西,它就像這樣工作”。所以不幸的是,命令的文件並沒有給你任何關於實際設置的線索。

(據我所知,rpc.idmap 不會在 ‘open’ 呼叫中翻譯 ID,僅在 ‘stat’ 和類似情況下翻譯 ID,導致您無法編寫 stat 表示您擁有的文件的奇怪情況,但可以寫入沒人擁有的文件…我不知道 nfsidmap 是否會改變這種行為。)

引用自:https://serverfault.com/questions/415908