sec = sysで動作するようにNFSv4 idmapを取得する方法は?

sec = sysで動作するようにNFSv4 idmapを取得する方法は?

仕える人(Debian) NFS とサービスを通じていくつかのフォルダを提供する顧客(Debian)NFSv4を使用してNFSサーバーに接続し、エクスポートしたフォルダをマウントします。これまではフォルダの内容をリンクして変更できました。しかし、ユーザーは完全に混乱していました。私が理解したのは、NFSがUIDを使用して権限を設定し、ユーザーのUIDとして使用されるためです。顧客そして仕える人そうでなければ、これが起こり、それはまだ予想されます。しかし、私が理解したように、NFSv4を有効にすると、IDMAPDはUIDの代わりにユーザー名を起動して使用する必要があります。ユーザーは次の場所に存在します。仕える人そして顧客一方、UIDは異なります。しかし、何らかの理由でIDMAPDは動作しないか、動作しないようです。

これまで私がしたことは次のとおりです。

サーバー側から:

  • nfs-カーネル-サーバーのインストール
  • /etc/exports を正しいエクスポート設定で埋める -->/rfolder ip/24 (rw, sync, no_subtree_check, no_root_squash)
  • /etc/default/nfs-common を次のように変更します。NEED_IDMAPD=はい

クライアントから

  • nfs-commonのインストール
  • /etc/default/nfs-common を次のように変更します。NEED_IDMAPD=はい
  • 「インストールフォルダ」を使用してください。マウント -t nfs4 ip:/rfolder /media/lfolder

何度も再起動して再起動しましたが、まだ動作しませんでした。私が行くとき仕える人ユーザーを含むフォルダ、存在する顧客フォルダの所有者が特定のユーザーであることを確認しました。X。私が行くとき顧客ユーザーと、存在する仕える人特定のユーザーから来るそうです。はい

rpc.idmap プロセスが実行中かどうか HTOP で確認しました。仕える人もちろん。たとえ顧客実行されていないようです。以下を試して手動でサービスを開始します。顧客IDMAPを実行するには、nfs-kernel-serverの依存関係が必要であるというエラーメッセージが表示されました。だからインストールしました。顧客側面では、rpc.idmapプロセスは両方の場所で実行されています。顧客そして仕える人。再起動しましたが、問題が残っています。

ここで何が起こっているのかご存知ですか?それとも正しく設定する方法は?

答え1

sec=sysKerberosの代わりに、デフォルトのAUTH_SYS認証(マウントオプション)を使用してマウントにNFSv4 IDマッピングを使用するときに注意する必要があるものがいくつかあります。

メモ:AUTH_SYSユーザー/グループ名のみを変換するには、idmappingを使用してください。権限はまだローカルUID / GID値に基づいて検証されます。ユーザー名のアクセス許可を取得する唯一の方法は、Kerberosを使用することです。

最近のカーネルでは、サーバーだけがrpc.idmapdを使用しています。man rpc.idmapd)。 idmapを使用すると、ユーザー名は次のように始まります。ユーザー@ドメイン滞在。ドメイン名が設定されていない場合/etc/idmapd.conf、idmapd はシステムの DNS ドメイン名を使用します。 idmapがユーザーを正しくマップするには、クライアントとサーバーのドメイン名が同じでなければなりません。

次に、カーネルはsec=sysNFSv4 マウントの ID マッピングを無効にします。基本的に。パラメータをnfs4_disable_idmappingfalseに設定すると、マウントされたIDマッピングが有効になりますsec=sys

サーバーから:

echo "N" > /sys/module/nfsd/parameters/nfs4_disable_idmapping

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

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

nfsidmap -cマウントされたNFSv4ファイルシステムに変更が表示されるようにするには、クライアントでidmapキャッシュを消去する必要があります。

これらの変更を行うには永久、構成ファイルの生成/etc/modprobe.d/

存在する仕える人( modprobe.d/nfsd.conf):

options nfsd nfs4_disable_idmapping=N

存在する顧客( modprobe.d/nfs.conf):

options nfs nfs4_disable_idmapping=N

答え2

これはよく知られた文書化された動作です。サーバー側とクライアント側で同じuidファイルを共有するユーザーが異なる場合現れるでしょう所有者が異なります。

ファイルを共有することに加えて、同じファイルシステムを共有するすべてのシステムで同じIDを持つユーザーをマッピングすることに注意することをお勧めします。

これを手動で実行したり、最小限の自動化/スクリプトシステムを使用したり、より良い方法でLDAPを使用するなどの集中認証を設定したりできます。バラよりOpenLDAPによる集中認証

関連情報