私は3つのUbuntuシステムを備えたラボで働いており、NFSを介していくつかのファイルシステムをクロスマウントしたいと考えています。ただし、システムにはいくつかの同じユーザー名がありますが、3つのシステムが別々にセットアップされているため、UIDとGIDは一致しません。 NFSファイルシステムをあるシステムから別のシステムにマウントすると、所有権が間違って表示されます。たとえば、UID 1000がserver1のaliceであり、同じUID 1000がserver2のbobである場合、server1がserver2のエクスポートされたファイルシステムをマウントすると、bobのファイルはaliceが所有しているように見えます。
それで、NFS(v4)がサーバーに関連付けられたユーザー名を介してUIDを変換する方法はありますか?私はこれをググって、Kerberos、LDAP、またはNISへの参照をたくさん見ました。これは、そのような単純なタスクにとっては大げさすぎるように思われ、これらのシステムは集中管理されていないため不可能かもしれません。 このリンク は、私が求めることは不可能であることを示しているようです。それが正しいか?
編集:/etc/idmapd.conf
のすべての構成を試してみましたが、インターネットで考えたり見つけたりできます。idmapdプロセスが明確に実行されている間、これまでのところ、NFSが使用を試みているという証拠はありません。それはまったくありません。また、NFSマウントで報告されるユーザーIDに影響を与えることはありません。
一元化されたユーザー管理がないため、私が見る「最善の」方法は、すべてのサーバーが各ユーザーに対して同じGIDとUIDを使用するように強制することです。さて...私はファイルやディレクトリのみについて話している。
この場合、私は何をしますか:
/etc/passwd
および/etc/group
とすべてのサーバーのグループに一致します。できれば新しいUIDとGIDを使用して、次のステップを高速化するこれを実行します(しばらく時間がかかります):
find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
find / -user <OLD_UID> -exec chown <NEW_UID> '{}' \+
NFSv4はIDマッピングをサポートしています。有効にすると、NFSは数値IDではなくユーザー名を送信します。ユーザー名はホスト上のuidにマップされるため、同じユーザーに対して異なる数値のuidを持つホストは問題になりません。
IDマッピングは常にKerberosセキュリティモード(sec=krb5
)。
IDマッピングはAUTH_UNIXでも使用できます(デフォルトのsec=sys
)モード。 sec = sys でNFSv4 idmapを動作させる方法.