web-dev-qa-db-ja.com

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.

このエントリは、Ubuntu12.04の時点でrequest-key.confに存在しません。私はこれについていくつかの異なる矛盾する報告を見てきました:

  1. nfs.idmap upcallは廃止され、代わりにrpc.idmapdを使用する必要があります
  2. rpc.idmapdは廃止され、代わりにnfs.idmapを使用する必要があります
  3. カーネルは自動的に2つの間を行き来します(どちらが好きですか?)

誰かがこれに光を当てることができますか?

ありがとう。

1
SystemParadox

Ubuntuが出荷時にrpc.idmapを使用していることは少しデバッグから明らかです(少なくとも12.04まで)。

考古学:nfsidmap呼び出しを機能させるには、nfsidmapメカニズムがコンパイルされたカーネルが必要です(オプションは「new」idmapなので、rpc.idmapの代わりになると思います)。また、 http://www.mjmwired.net/kernel/Documentation/filesystems/nfs/idmapper.txt には、rpcidmapが最初に呼び出されることを示唆するカーネルドキュメント(執筆時点で3.5)が含まれています。仮定はメソッドの優先度を示します(ドキュメントは古いコピーのようです)。

実用的な情報:nfsidmappは、カーネルに比較的最近追加された、より広範なリクエストキーセキュリティシステムの一部です(1年以上使用されているという点で「比較的」ですが、Ubuntuのリリースサイクルではかなり短いです)。 Ubuntuはまだそのメカニズム全体をサポートしていないようです。

Nfs-utilsパッケージには、rpc.idmapバイナリとnfsidmapバイナリの両方が含まれています。もちろん、nfsidmapのドキュメントは、「使用しているもの、このように機能する」のように書かれています。そのため、残念ながら、コマンドのドキュメントには、実際に設定されているものについての手がかりはありません。

(私が知る限り、rpc.idmapは「open」呼び出しでIDを変換せず、「stat」などでのみ変換します。そのため、statが所有していると言っているファイルを書き込めないという奇妙なケースにつながりますが、誰も所有していないファイルを書き込む... nfsidmapがその動作を変更するかどうかはわかりません。)

2
ijw