私はfreeIPAドメインを持っており、いくつかのクライアントとSynology NAS(freeIPAにも登録されています)がいます。
NAS上にNFSv4 + krb5をサポートする共有フォルダーを作成しました。クライアントから、LDAPユーザー[email protected]
のチケットを取得し、このフォルダーをマウントします。
最初は、このフォルダーに作成されたファイルはnobody
ユーザーが所有します。
NASの/etc/idmapd.conf
をに変更することで、ようやく機能するようになりました
[email protected]
とローカルユーザーの間に静的なマッピングがあるNFS全体でのidmapd
の役割を理解しています。
ただし、この場合:
[email protected]
が誰であるかを完全に認識しています。なぜ、そのuidを使用できないのですか。ローカルユーザーのuidではなく、そのフォルダーのファイルの所有権について?ローカルユーザーの作成を回避できますか?私の現在のidmapd.conf
は次のようになります:
[General]
Domain=hq.example.com
[Mapping]
Nobody-User=guest
Nobody-Group=users
[Translation]
Method=nsswitch
GSS-Methods=static,synomap
[Static]
[email protected]=user1
私が達成したいのは、静的マッピング[email protected]=user1
が必要ないことと、可能であれば、NASにローカルユーザーuser1
を作成する必要すらないことです。
要するに、NFSv4プロトコルは、UID/GID number s(以前のバージョンで使用されていた)ではなく、サーバーとクライアント間で共有されるユーザーnameに依存しているということです。 )およびUID <==>ユーザー名マッピングは、実際にはクライアントとサーバーで異なる場合があります。
NFSv4プロトコルの一部として、サーバーは両方とも、共通のセキュリティコンテキスト/権限、ownerおよびowner_groupを、ローカルファイルシステムの操作に意味のあるものにマップする必要があります。そのマッピングは、Linuxシステム上のIDMAPDによって行われます。
Linuxシステムでは、多くのローカルファイルシステム操作はUID/GIDベースですが、NFSサーバーに送信する前に、共有NFSv4コンテキストに変換する必要があります。
多分 RFC 35 それをよりよく説明することができます:
§5.8。 ownerとowner_groupの解釈
推奨される属性
"owner"
および"owner_group"
(および「acl」属性内のユーザーとグループ)は、UTF-8文字列で表されます。クライアントまたはサーバーでの特定の基礎となる実装に関連付けられている表現を回避するために、UTF-8文字列の使用が選択されています。 [RFC2624]のセクション6.1が追加の理論的根拠を提供していることに注意してください。クライアントとサーバーには、ローカルストレージまたはエンドユーザーへの表示に使用されるownerとowner_groupの独自のローカル表現があることが期待されます。したがって、これらの属性がクライアントとサーバー間で転送されると、ローカル表現が"user@dns_domain"
という形式の構文に変換されることが期待されます。これにより、同じローカル表現を使用しないクライアントとサーバーが、両方で解釈できる共通の構文に変換できるようになります。
編集 imapd.confへの応答。
ローカルユーザーへの静的マッピングを使用している。 NFSv4 IDをLDAPユーザーにマップすることをお勧めします。これは、おそらくnsswitch
オプションで実行する必要がありますが、そうではないようです。 NFSサーバー上のidmapdの詳細度を上げることで、何が起こっているかを確認することができます。
または、LDAPサーバーに直接クエリを実行するようにidmapdを構成します。正確な構文は、使用しているバージョンによって異なりますが、 man page は次の行に沿って表示されます。
[General]
Verbosity = 0
Domain = domain.org
Local-Realms = DOMAIN.ORG,MY.DOMAIN.ORG,YOUR.DOMAIN.ORG
[Mapping]
Nobody-User = nfsnobody
Nobody-Group = nfsnobody
[Translation]
Method = umich_ldap,nsswitch
GSS-Methods = umich_ldap,static
[Static]
[email protected] = johnny
[UMICH_SCHEMA]
LDAP_server = ldap.domain.org
LDAP_base = dc=org,dc=domain