UIDが一致しないシステム間でNFSv4 UIDをマッピングする方法は?

UIDが一致しないシステム間でNFSv4 UIDをマッピングする方法は?

私は3つのUbuntuシステムを備えた研究室で働いており、NFSを介していくつかのファイルシステムをクロスマウントしたいと思います。ただし、これらのシステムには同じユーザー名がある場合でも、3 つのシステムが別々に設定されているため、UID と GID は一致しません。あるシステムから別のシステムに NFS ファイルシステムをマウントすると、所有権にエラーが表示されます。たとえば、UID 1000がserver1のアリスで、同じUID 1000がserver2のbobの場合、server1がserver2のエクスポートされたファイルシステムをマウントすると、bobのファイルはaliceが所有しているように見えます。

それでは、接続されたユーザー名を介してサーバー間でUIDを変換するNFS(v4)を取得する方法はありますか? Google で検索しながら、Kerberos、LDAP、NIS への参照をたくさん見ました。これは、これらの単純な作業に比べて膨大な過剰のように見え、そのようなシステムは一元管理されていないため、おそらく不可能でした。このリンク私が要求することは不可能であることを示すようです。そうなんですか?

/etc/idmapd.conf編集:インターネット上で見つけることができるか考えることができるすべての設定を試しましたが、idmapdプロセスが明らかに実行されている間にNFSがそれを使用しようとしているという証拠を見たことがなく、NFSでは決して失敗しません。報告されたユーザーIDはインストールには影響しません。

答え1

NFSv4 は ID マッピングをサポートします。有効にすると、NFSは数値IDの代わりにユーザー名を送信します。同じユーザーに対して異なる数のuidを持つホストは、ユーザー名がホストのuidにマップされるため問題ありません。

IDマッピングは常にKerberosセキュリティモード()で使用されますsec=krb5

IDマッピングはsec=sysAUTH_UNIX(デフォルト)モードでも使用できます。私の答えで設定の詳細を説明しました。sec = sysで動作するようにNFSv4 idmapを取得する方法

答え2

一元化されたユーザー管理がないため、「最も良い」アプローチは、すべてのサーバーに各ユーザーに同じGIDとUIDを使用させることです。今…私はファイルやディレクトリについてだけ話しています。

この場合、私がすることは次のとおりです。

  • 現在使用中のUID、GIDをそれぞれ登録します。
  • すべてのサーバーのグループを編集し/etc/passwdて一致させます。/etc/group新しいUIDとGIDを持つ方が良いので、次のステップが速くなります。
  • これを実行してください(少し時間がかかります):

    find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
    find / -user  <OLD_UID> -exec chown <NEW_UID> '{}' \+
    

関連情報