ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11 Information Library (日本語) |
- NFS ユーザー ID とグループ ID のマッピングデーモン
/usr/lib/nfs/nfsmapid
nfsmapid デーモンは、NFS Version 4 の owner と owner_group の ID 属性と、NFS バージョン 4 のクライアントとサーバーの両方で使用されるローカル UID および GID 番号とのマッピングを行います。
nfsmapid は、/etc/nsswitch.conf ファイル内の passwd および group エントリを使用して、マッピングの実行方法を指示します。
nfsmapid デーモンには、ユーザーからアクセスできる外部インタフェースはありません。ただし、次のいずれかの方法を使って nfsmapid の構成を管理できます。
NFS の SMF で、sharectl(1M) コマンドを使用して nfsmapid_domain パラメータを指定します。
_nfsv4idmapdomain DNS リソースレコードを指定します。
現在選択されている NFSv4 ドメインは、/var/run/nfs4_domain ファイル内で使用できます。
詳細は、『『Oracle Solaris のシステム管理 (ネットワークサービス)』『Oracle Solaris のシステム管理 (ネットワークサービス)』』を参照してください。
nfsmapid サービスは、サービス管理機能 smf(5) によって、次のサービス識別子として管理されます。
svc:/network/nfs/mapid
有効化、無効化、または再起動要求など、このサービスに関する管理操作は、svcadm(1M) を使用して実行できます。サービスのステータスを照会するには、svcs(1) コマンドを使用します。
無効になっている場合は、application/auto_enable プロパティーが false に設定されていないかぎり、mount_nfs(1M)、share_nfs(1M)、および automountd(1M) を使用することで有効になります。
nfsmapid は、ユーザーの UID と GID をキャッシュします。あとでユーザーが、後述するユーティリティーのいずれかを使って UID や GID を変更した場合、nfsmapid キャッシュは無効になります。この時点で、属性を取得または設定する NFS 操作では、この無効な情報が交換されます。この状況を解決するには、次のように nfsmapid を再起動します。
# svcadm restart svc:/network/nfs/mapid:default
ドメイン名を指定する起動 SMF パラメータ (nfsmapid_domain) は、sharectl(1M) コマンドを使って操作できます。
NFS SMF パラメータ nfsmapid_domain の設定は、送信と受信の各属性文字列の作成と比較に nfsmapid で使用されるドメインよりも優先されます。また、この設定は、NFSv4 ドメインを設定するほかのすべてのメカニズムよりも優先されます。nfsmapid_domain の設定が存在しない場合、nfsmapid デーモンは次のように NFSv4 ドメインを決定します。
適切に構成された /etc/resolv.conf (resolv.conf(4) を参照) が存在する場合、nfsmapid は指定されたネームサーバーに対してドメインを照会します。
適切に構成された /etc/resolv.conf (resolv.conf(4) を参照) が存在するが、照会先のネームサーバーが適切なドメイン名レコードを保持していない場合、nfsmapid は BIND インタフェースを介してドメイン名の取得を試みます (resolver(3RESOLV) を参照)。
/etc/resolv.conf が存在しない場合、nfsmapid はフォールバックして構成済みのドメイン名 (domainname(1M) を参照) を使用します。返されるドメイン名は、先頭のドメイン接尾辞が削除されています。たとえば、widgets.sales.acme.com の場合は sales.acme.com が返されます。
/etc/resolv.conf が存在せず、構成済みのドメイン名 (または /etc/defaultdomain) も存在しない場合は、ホスト名に完全指定のドメイン名 (FQDN) が含まれていれば、nfsmapid はフォールバックしてホスト名からドメイン名を取得します。
前述の手順をすべて実行してもドメイン名を取得できない場合、nfsmapid は構成済みのドメインを持ちません。その結果、次のような動作になります。
owner および owner_group 送信属性文字列は、リテラル ID としてエンコードされます。たとえば、UID 12345 は 12345 としてエンコードされます。
nfsmapid は、受信属性文字列の domain 部分を無視し、ユーザーまたはグループのネームサービス検索のみを実行します。ローカルシステムのネームサービスデータベース内にユーザー/グループが存在する場合は、ドメインが構成されていない場合でも、適切な UID/GID がマップされます。
この動作は、NFSv4 のクライアントとサーバー間で同じ管理ユーザー/グループドメインが存在する (つまり、クライアントとサーバーの両方でユーザー/グループの UID/GID が同じである) ことを意味します 重複する ID 空間では、受信属性文字列が不正な ID にマップされる可能性があります。ただし、これは、受信文字列を nobody にマップすることとは機能的に異なり、より高い柔軟性を実現します。後述の「使用例」を参照してください。
UID と GID を変更できるユーティリティーを次に示します。
現在 NFSv4 により使用されているドメイン名が含まれています。
例 1 ドメイン名を設定する
次のコマンドは、sharectl を使用してドメイン名を設定します。
# sharectl set -p nfsmapid_domain=sun.com nfs
nfsmapid_domain プロパティーについては、後述の「注意事項」を参照してください。
例 2 ドメイン名を取得する
次のコマンドは、sharectl を使用して現在のドメイン名を取得します。
# sharectl get -p nfsmapid_domain nfs nfsmapid_domain=sun.com
属性についての詳細は、attributes(5) を参照してください。
|
svcs(1), automountd(1M), domainname(1M), groupdel(1M), groupmod(1M), mount_nfs(1M), svcadm(1M), share_nfs(1M), sharectl(1M), userdel(1M), usermod(1M), resolver(3RESOLV), nfs(4), resolv.conf(4), attributes(5), smf(5)
『Oracle Solaris のシステム管理 (ネットワークサービス)』
Solaris の将来のリリースでは、nfsmapid デーモンが存在しなくなる可能性があります。