この章では、FNS およびエンタープライズレベルのネームサービスの管理について説明します。
エンタープライズレベルのネームサービスは、組織内のオブジェクトをネーミングするために使用されます。現在 FNS は、次の 3 つのエンタープライズレベルのネームサービスをサポートしています。
NIS+。(「FNS と NIS+ のネーミング」および、「FNS ポリシーと NIS+ との関連」を参照)
NIS (「FNS と NIS のネーミング」および、「FNS ポリシーと NIS の関連」を参照)
ローカルファイル (「FNS とファイルベースのネーミング」および、「FNS ポリシーとファイルベースのネーミングの関連」を参照)
『Solaris ネーミングの設定と構成』で説明している fncreate コマンドで FNS 名前空間を初期設定して構成するときには、正しいデフォルトのネームサービスが自動的に各マシンに選択されます。
マシンの主要なエンタープライズレベルのネームサービスを後で変更する場合は、そのマシンで fnselect コマンドを実行する必要があります。詳細は、「ネームサービスを選択する」を参照してください。
タスクの 1 つにシステム管理者の機能が割り当てられていて、FNS とその下層のネームサービス間の整合性を維持しています。これは、ネームサービスのファイル、マップ、またはテーブルと FNS コンテキストが正しく対応しているかどうかをチェックするということです。
『Solaris ネーミングの設定と構成』で説明している fncreate コマンドで FNS 名前空間を初期設定して構成するとき、fncreate では、FNS コンテキストが適切に作成され、下層のネームサービスのデータと整合されたことが確認されます。FNS コンテキストが設定された後、ユーザー、ホスト、プリンタなどがシステムに追加または削除されるときに、この対応関係は維持される必要があります。以下の項では、FNS とネームサービスとの整合性を維持する方法について説明します。
Solstice AdminSuite 製品で、基本的なネームサービスでのユーザーとホストの情報を追加、変更、削除できます。AdminSuite ツールでは対応する FNS 名前空間が自動的に更新されるため、この方法をお勧めします。
Solstice AdminSuite 製品を使用せずに FNS または主要なネームサービスを更新するときに不一致が発生した場合は、FNS ツールの fncheck を使用して解決します。fncheck コマンドは、FNS の hostname と user のコンテキストと、次のものとの不一致をチェックします。
「NIS+」
「NIS」
NIS の hosts.byname と passwd.byname のマップ
「ファイル」
fncheck コマンドは、FNS 名前空間にあってネームサービスのデータにないホストとユーザー名およびネームサービスのデータにあって FNS 名前空間にないホストとユーザー名を表示します。
fncheck [-r][-s][-u][-t hostname|username][domain_name]表 22-1 fncheck コマンドオプション
オプション |
説明 |
---|---|
domain |
コマンドを実行しているドメイン以外の NIS+ ドメインにコマンドを適用する |
-t |
チェックするコンテキストのタイプを指定する。許容されるタイプは、hostname または username |
-s |
FNS 名前空間にない名前空間のデータセットからホスト名とユーザー名を表示する |
-r |
対応する名前空間のデータセットにないエントリを持たない FNS 名前空間からホスト名またはユーザー名を表示する |
-u |
関連した名前空間のデータセットにある情報に基づいて FNS 名前空間を更新する |
-t オプションは、チェックするコンテキスト (ホストまたはユーザー) を指定するために使用します。-t オプションを省略した場合は、hostname と username のコンテキストの両方がチェックされます。
-r オプションを -u オプションとともに使用すると、FNS コンテキストにしか表示されない項目が FNS コンテキストから削除されます。-s オプションを -u オプションとともに使用すると、名前空間のデータセットにしか表示されない項目が FNS コンテキストに追加されます。-r と -s のどちらも指定しない場合は、項目が FNS コンテキストに追加および削除され、対応する名前空間のデータとの整合性が保たれます。
FNS がマシンに対する初期コンテキストにバインドを構成するときには、特定のネームサービスに基づいて行います。
FNS では fnselect コマンドで使用するネームサービスを選択できます。fnselect で指定したネームサービスの設定は、マシン全体、そのマシンで動作するすべてのアプリケーション、およびそのマシンにログインしたすべてのユーザーに影響します。
スーパーユーザーだけが fnselect を実行できます。コマンド構文は以下のとおりです。
fnselect [-D] [namesvc]表 22-2 fnselect コマンドオプション
オプション |
説明 |
---|---|
namesvc |
選択するネームサービス。必ず次のどれかになる。default、nisplus、nis または files |
-D |
FNS 初期コンテキストを生成するために使用されるネームサービスを表示する |
たとえば、マシンのネームサービスとして NIS+ を選択するには以下のコマンドを使用します。
# fnselect nisplus
たとえば、マシンのネームサービスとして default を選択し、FNS 初期コンテキストを生成するために使用されるサービスの名前を印刷するには次のように入力します。
# fnselect -D default
fnselect でネームサービスを指定しない場合、FNS はデフォルトのネームサービスを使用します。デフォルトのネームサービスは、マシンの使用するネームサービスに基づいて FNS で決定されます。マシンが NIS+ クライアントである場合は、FNS は NIS+ をネームサービスとして使用します。マシンが NIS クライアントである場合は、FNS は NIS を使用します。マシンが NIS+ および NIS クライアントのどちらでもない場合は、FNS は /etc ファイルをマシンのネームサービスとして使用します。
ごくまれに、NIS+ と NIS ベースのコンテキストの両方にアクセスする必要が生じることがあります。たとえば、それ自体が NIS+ クライアントである NIS サーバーを稼動している場合です。この場合、fnselect コマンドを使用して、使用するエンタープライズレベルのネームサービスを選択します。
この節では、NIS+ オブジェクトと FNS オブジェクトの関係の詳細について説明します。この情報は、FNS オブジェクトのアクセス制御を変更するときに有効です。
次を参照してください。
FNS コンテキストは、NIS+ オブジェクトに格納されます。組織に関連するすべてのコンテキストは、関連する NIS+ ドメインの ctx_dir ディレクトリに格納されます。ctx_dir ディレクトリは、同じドメインの org_dir と同じレベルにあります。すなわち、FNS と同時に実行される時には、それぞれの NIS+ ドメインまたはサブドメインには対応する org_dir、groups_dir、および ctx_dir というディレクトリオブジェクトが存在します。
fnlookup または fnlist のコマンドで -v オプションを使用して、リファレンスについての詳細な説明を表示します。内部名フィールドに、対応する NIS+ オブジェクトの名前が表示されます。
NIS+ コマンドの nisls を使用して、FNS で使用される NIS+ オブジェクトを表示できます。たとえば、次のコマンドでは、NIS+ ドメインのディレクトリおよび ctx_dir サブディレクトリの内容が表示されます。
# nisls doc.com. doc.com.: manf sales groups_dir org_dir ctx_dir
# nisls ctx_dir.doc.com. ctx_dir.DOC.COM.: fns fns_user fns_host fns_host_alto fns_host_mladd fns_host_elvira fns_user_jjones fns_user_jsmith fns_user_aw
niscat コマンドを使用して、fns_hosts テーブルの内容を表示します。
# niscat fns_host.ctx_dir altair *BINARY* *BINARY* cygnus *BINARY* *BINARY* centauri *BINARY* *BINARY*
niscat コマンドを -o オプションつきで使用して、コンテキストのアクセス制御を確認します。特定のバインディングのアクセス制御を確認するには、親コンテキストのバインドテーブルにあるバインドエントリの名前 (つまり、fnlookup -v および fnlist -v の出力の内部名フィールドに表示される名前) を使用します。
# niscat -o fns_host.ctx_dir Object Name : fns_host Owner : alto.doc.com. Group : admin.doc.com. Domain : ctx_dir.doc.com. Access Rights : r-c-rmcdrmcdr-c- Time to Live : 53:0:56 Object Type : TABLE Table Type : H Number of Columns : 3 Character Separator Search Path : Columns : [0] Name : atomicname Attributes : (検索可能、テキストデータ、大文字・小文字の区別なし) Access Rights : r-c-rmcdrmcdr-c- [1] Name : reference Attributes : (2 進データ) Access Rights : r-c-rmcdrmcdr-c- [2] Name : flags Attributes : (2 進データ) Access Rights : r-c-rmcdrmcdr-c-
# niscat -o "[atomicname=altair],fns_host.ctx_dir" Object Name : fns_host Owner : altair.doc.com. Group : admin.doc.com. Domain : ctx_dir.doc.com. Access Rights : r-c-rmcdrmcdr-c- Time to Live : 12:0:0 Object Type : ENTRY Entry data of type H [1] - [5 bytes] 'alto' [2] - [104 bytes] '0x00 ...' [3] - [1 bytes] 0x01
niscat コマンドに関する追加情報については、「niscat コマンド」を参照してください。
特定のコンテキストのアクセス権または所有権を変更するには、次のコマンドを使用します:
操作が影響するオブジェクトに応じて、バインドエントリまたはバインドテーブルのどちらかを引数として与えます。
ここでは、NIS と FNS の関係についての特定情報を説明します。
FNS は、NIS マスターおよびスレーブのサーバー上の /var/yp/domainname ディレクトリに格納されている 6 つのマップを使用します。
fns_host.ctx
ホスト属性とサブコンテキストのデータを格納する。これが最初に作成されると、hosts.byname マップから情報が得られる
fns_host.ctx
ユーザー属性とサブコンテキストのデータを格納する。これが最初に作成されると、passwd.byname マップから情報が得られる
fns_org.ctx
fns_host.attr
fns_user.attr
属性による検索のためのユーザー属性を格納する
fns_org.attr
ホスト、ユーザー、およびエンタープライズのサービスとファイルのコンテキスト情報は、それぞれ fns_host.ctx、fns_user.ctx、および fns_org.ctx のマップに格納されます。プリンタのコンテキスト情報は、他のサービスのコンテキスト情報と同じマップに格納されます。しかし、古い printers.conf.byname マップはここでもサポートされます。
サイトは、エンタープライズのサブコンテキストであり、サイトのコンテキスト情報は fns_org.ctx マップに格納されます。
これらの FNS マップは、直接編集しないでください。fncreate、fndestroy、fnbind、fnunbind、fnrename、fnattr、fnlookup、および fnlist などの適切な FNS コマンドを実行して、これらのマップで変更または作業を行います。これらのコマンドは、必ず NIS マスターサーバーで実行します。スレーブサーバーまたはクライアントマシンでこれらを実行できません。
FNS マップファイルは、/var/yp/domainname ディレクトリにあります。/var/yp にある NIS Makefile は変更され、/etc/fn/domainname にある FNS Makefile が認識されます。
NIS では、NIS マップに含まれるエントリ数に 64k という制限があります。サービスおよびプリンタのコンテキストだけが各オブジェクト (ホストまたはユーザー) に作成された場合、ユーザーまたはホストの数が 7k を超えると、エントリ数がその制限に達します。通常行われるように、ホストまたはユーザーに追加のコンテキストが作成された場合、ずっと少ないホストまたはユーザーでエントリ数が 64,000 の上限に達します。
FNS は、古いマップが最大サイズに達したら新規マップを自動的に作成して、この問題を解決します。各新規マップは、マップ名に数字の接尾辞を追加して識別されます。たとえば、2 つめの fns_user.ctx マップが作成されると、そのマップには名前 fns_user_0.ctx という名前が与えられます。3 つめのマップが必要になると、そのマップには名前 fns_user_1.ctx という名前が与えられます。追加のマップが作成されるにつれて、数字は毎回増加していきます。
Solaris リリース 2.5 では、FNS は、printers.conf.byname という名前のマップを使用して、組織コンテキストで NIS のプリンタのネーミングをサポートします。現在の Solaris では、組織コンテキストのプリンタサポートは、fns_org.ctx マップに保持されています。つまり、ここでの fncreate_printer コマンドでは fns_org.ctx マップが変更され、printers.conf.byname マップは変更されません。
fncopy コマンドは、エンタープライズレベルのネームサービスを NIS から NIS+ に変更するときに、FNS 関連の側面を処理します。このコマンドは、NIS ベースの FNS コンテキストを NIS+ ベースのコンテキストにコピーして変換します。
fncopy [-i oldsvc - o newsvc] [-f filename] oldctx newctx表 22-3 fncopyコマンドオプション
オプション |
説明 |
---|---|
-i oldsvc |
ソースのネームサービス。nis または files だけが指定される |
-o newsvc |
目標のネームサービス。nisplus または nis だけが指定される |
-f filename |
コピーされる FNS コンテキストを表示するファイル名 |
oldctx |
コピーされる古い FNS コンテキスト |
newctx |
目標の新規 FNS コンテキスト |
たとえば、ファイル /etc/sales_users に表示されるコンテキストを、NIS ベースのネームサービスの doc.com ドメインから NIS+ ネームサービスの sales.doc.com ドメインにコピーするには、次のように入力します。
fncopy -i nis -o nisplus -f /etc/sales_users org/sales.doc.com/user
この節では、ファイルベースのネーミングと FNS の関係についての特定の情報を説明します。
FNS では、各マシンの /var/fn ディレクトリに格納された新規ファイルが使用されます。通常 /var/fn ディレクトリは各マシンに格納されていますが、NFS 経由で中央の /var/fn ディレクトリをマウントしたり、エクスポートしたりできます。
新規 FNS ファイルを以下に示します。
fns_host.ctx
ホスト属性とサブコンテキストのデータを格納する。これが最初に作成されると、/etc/hosts ファイルから情報が得られる
fns_user.ctx
ユーザー属性とサブコンテキストのデータを格納する。これが最初に作成されると、/etc/passwd ファイルから情報が得られる
fns_org.ctx
fns_host.attr
fns_user.attr
fns_org.attr
ユーザーのサブコンテキストと属性の情報は、各ユーザーが所有する別個の /var/fn ファイルに格納される。これにより、ユーザーは FNS コマンドを使用して、自分のデータを変更できる。これらのユーザー固有のファイルは、fns_user_username.ctx とネーミングされる。ここでの username は、個々のユーザーのログイン ID になる
ホスト、ユーザー、およびエンタープライズのサービスとファイルのコンテキスト情報は、それぞれ fns_host.ctx、fns_user.ctx、および fns_org.ctx のファイルに格納されます。プリンタのコンテキスト情報は、他のサービスのコンテキスト情報と同じファイルに格納されます。
サイトは、エンタープライズのサブコンテキストであり、サイトのコンテキスト情報は fns_org.ctx ファイルに格納されます。
これらの FNS マップは、直接編集しないでください。fncreate 、fndestroy、fnbind、fnunbind、fnrename、fnattr、fnlookup、および fnlist などの適切な FNS コマンドを実行して、これらのファイルで変更または作業を行います。スーパーユーザーとしてこれらのコマンドを実行すると、ホスト、サイト、および組織単位などの、コマンドが適用されるコンテキストが影響されます。ユーザーとしてこれらのコマンドを実行すると、自分のユーザーのサブコンテキストだけが影響されます。
fncopy コマンドは、エンタープライズレベルのネームサービスをファイルから NIS または NIS+ に変更するときに、FNS 関連の側面を処理します。このコマンドは、ファイルベースの FNS コンテキストを NIS または NIS+ ベースのコンテキストにコピーして変換します。
fncopy [-i oldsvc -o newsvc] [-f filename] oldctx newctx
たとえば、ファイル /etc/host_list に表示される内容を NIS+ ネームサービスの doc.com ドメインにコピーするには、次のように入力します。
fncopy -i files -o nisplus -f /etc/host_list //doc.com/host
Solaris リリース 2.5 では、FNS は、printers.conf.byname という名前のファイルを使用して、組織コンテキストでファイルへのプリンタのネーミングをサポートします。現在の Solaris では、組織コンテキストのプリンタサポートは、fns_org.ctx マップに保持されています。つまり、ここでの fncreate_printer コマンドでは fns_org.ctx マップが変更され、printers.conf.byname マップは変更されません。