この章では、nisserver、nispopulate、nisclient の各スクリプトと NIS+ コマンドを組み合わせて、基本的な NIS+ 名前空間を構成する方法について説明します。
また、この章では次の手順について説明します。
NIS+ 名前空間の設定と構成には、スクリプトを使用する方法をお勧めします。NIS+ コマンド群を使って NIS+ 名前空間を設定する方法 (以降の章で説明) より簡単に実行できます。
(スクリプトの詳細は、nisserver(1M)、nispopulate(1M)、nisclient(1M) の各マニュアルページを参照してください。用語や略語の定義については、『Solaris ネーミングの管理』の用語集を参照してください。)
このチュートリアルで説明するサンプルの小さな NIS+ 名前空間を土台にして実際の NIS+ 名前空間を作ることはしないでください。名前空間についてひととおり理解できたら、サンプルの名前空間は削除してください。サンプルの名前空間に実際の名前空間を追加しないでください。あらためて、初めから NIS+ 階層の計画を注意深く立ててから、実際の名前空間を作成してください。
一般に推奨される設定手順を表 4-1 に要約します。左端の列には、ルートドメインの構成やクライアントの作成などの主な設定作業を示します。中央の列には作業の説明を、右端の列には各手順に必要なスクリプトまたは NIS+ コマンドをそれぞれ示します
表 4-1 NIS+ の推奨構成手順の概要
作業 |
説明 |
スクリプトまたは NIS+ コマンド |
---|---|---|
NIS+ 名前空間の計画を立てる |
NIS+ 名前空間の計画を立てる。計画に関する要件と手順の詳細は、『NIS+ への移行』を参照。(試験的なネットワークで NIS+ チュートリアルを使用している場合、この手順は不要) |
|
既存の名前空間を設定する |
スクリプトを正常に実行するためには、既存の名前空間を適切に設定する必要がある。必要な準備については、「名前空間がすでに存在する場合の設定」および『NIS+ への移行』を参照。(試験的なネットワークで NIS+ チュートリアルを使用している場合、この手順は不要) |
|
Diffie-Hellman キー長を設定する |
DES 認証を使用する場合には、デフォルトの 192 ビットよりも長い Diffie-Hellman キーの使用を考慮する。キーを長くする場合、その長さはドメイン内のすべてのマシンで同一である必要がある。各初期設定スクリプトの実行する前に、目的のキー長を指定する |
nisauthconf |
ルートドメインの構成 |
ルートドメインを作成する。ルートマスターサーバーの構成と初期設定を行う。ルートドメイン管理グループを作成する |
nisserver |
テーブルの生成 |
テキストファイルまたは NIS マップからルートドメインの NIS+ テーブルを生成 (populate) する。ルートドメインクライアントの資格 (credential) を作成する。管理者の資格を作成する |
nispopulate nisgrpadm nisping |
ルートドメインクライアントの構成 |
クライアントマシンを構成する (そのうちの何台かは続いてサーバーになる)。ユーザーを NIS+ クライアントとして初期設定する |
nisclient |
サーバーを使用可能にする |
ルートドメインの一部のクライアントをサーバーとして使用可能にする。サーバーの一部は後でルート複製サーバーとなり、そのほかは下位レベルのドメインをサポートする |
rpc.nisd |
ルート複製サーバーの構成 |
構成したばかりのサーバーのうち、1 台または複数をルートドメインの複製として指定する |
rpc.nisd nisserver |
非ルートドメインの構成 |
新しいドメインを作成する。以前の手順で使用可能にしたサーバーを、そのマスターとして指定する。その管理グループと管理資格を作成する |
rpc.nisd nisserver |
テーブルの生成 |
新しいドメインのクライアントの資格を作成する。テキストファイルまたは NIS マップから、新しいドメインの NIS+ テーブルを生成する |
nispopulate |
非ルートドメインのクライアントを構成する |
新しいドメインのクライアントを構成する (一部のクライアントは、後に下位レベルのドメインのサーバーとなる場合がある)。ユーザーを NIS+ クライアントとして初期設定を行う |
nisclient |
NIS+ スクリプトを使用することによって、上の作業で示される個々の手順の大部分を省略できます。
この章では、サンプルの NIS+ 名前空間を作成する方法を説明します。NIS+ 名前空間のサンプルは、/etc 内のファイルと NIS マップから作成されます。このサンプルでは、サイトで NIS を実行している場合と実行していない場合の両方について、スクリプトの使用方法を説明します。サーバーが NIS クライアントにサービスを提供する場合、サーバーを NIS 互換モードに設定できます。NIS 互換モードの詳細は、『NIS+ への移行』および『Solaris ネーミングの管理』を参照してください。
サイトの実際の NIS+ 名前空間とそのドメイン階層は、名前空間サンプルのものとはおそらく異なり、サーバー、クライアント、およびドメインの数も異なります。最終的なドメイン構成と階層は、このサンプルと異なるものと考えてください。この名前空間サンプルは、NIS+ スクリプトの使用法を説明するためだけのものです。この名前空間サンプルを作成すると、自分のサイトでのドメイン、サーバー、およびクライアントの作成方法も理解できるはずです。
名前空間サンプルには次の構成要素があります。
ルートマスターサーバー 1 台 (名称 master、doc.com ドメイン用)
ルートドメイン (doc.com.) のクライアント 4 台
client1 は、ルート複製サーバーとなる (doc.com. ドメイン用)
client2 は、新しいサブドメインのマスターサーバーとなる (sub.doc.com. ドメイン用)
client3 は、新しいサブドメインの非ルート複製サーバーとなる (sub.doc.com. ドメイン用)
client4 は、ルートドメインのクライアントとして残る (doc.com. ドメイン用)
サブドメインの 2 台のクライアント (名称 subclient1 および subclient2、sub.doc.com. ドメイン用)
ここでは、/etc/hosts などのシステム情報ファイルと NIS マップの両方を使用してネットワークサービス情報を格納するサイトで、NIS+ の設定に使用されるスクリプトを説明します。NIS+ 名前空間サンプルでこのような混合型のサイトを使用するのは、単にサンプルとして示すことが目的です。
NIS+ ドメインの例を作成する場合の NIS+ スクリプトとコマンドの一般的な順序を、表 4-2 に示します。このあとの節ではこれらのコマンド行について詳しく説明します。NIS+ のドメイン、サーバー、およびクライアントの作成に必要な作業に習熟した後、表 4-2 はコマンド行のクイックリファレンスガイドとして使用してください。表 4-2 は、NIS+ 名前空間サンプルを作成するために実際に入力するコマンドと変数をまとめたものです。
表 4-2 NIS+ ドメインの構成に使うコマンド行のまとめ
目的 |
対象マシン |
コマンド行 |
---|---|---|
/usr/lib/nis を root のパスに追加する。C シェルまたは Boure シェルを使用 |
ルートマスターサーバーとクライアントマシン。スーパーユーザーとして行う |
setenv または
|
オプションで DES 認証を使用する場合には、Diffie-Hellman キー長を選択する |
サーバーとクライアントマシン。スーパーユーザーとして行う |
nisauthconf -dhkey-length-alg-type des |
NIS (YP) との互換性があるか、または互換性がないルートマスターサーバーを作成する |
ルートマスターサーバー。スーパーユーザーとして行う |
nisserver -r -d newdomain. または nisserver -Y -r -d newdomain. |
ファイルまたは NIS マップからルートマスターサーバーテーブルを生成する |
ルートマスターサーバー。スーパーユーザーとして行う |
nispopulate -F -p /files -d newdomain. または nispopulate -Y -d newdomain. -h NISservername -a NIS_server_ipaddress -y NIS_domain |
NIS+ 管理グループにユーザーを追加する |
ルートマスターサーバー。スーパーユーザーとして行う |
nisgrpadm -a admin.domain. name.domain. |
NIS+ データベースのチェックポイントを実行する |
ルートマスターサーバー。スーパーユーザーとして行う |
nisping -C domain. |
新しいクライアントマシンを初期設定する |
クライアントマシン。スーパーユーザーとして行う |
nisclient -i -d domain. -h master1 |
ユーザーを NIS+ クライアントとして初期設定する |
クライアントマシン。ユーザーとして行う |
nisclient-u |
rpc.nisd デーモンを起動 − NIS (および DNS) との互換性なし、またはありでクライアントをサーバーにするために必要 |
クライアントマシン。スーパーユーザーとして行う |
rpc.nisd または rpc.nisd -Y または rpc.nisd -Y -B |
サーバーをルート複製サーバーにする |
ルートマスターサーバー。スーパーユーザーとして行う |
nisserver -R -d domain. -h clientname |
サーバーを非ルートマスターサーバーにする |
ルートマスターサーバー。スーパーユーザーとして行う |
nisserver -M -d newsubdomain.domain. -h clientmachine |
ファイルまたは NIS マップから新しいマスターサーバーテーブルを生成する |
新しいサブドメインマスターサーバー。スーパーユーザーとして行う |
nispopulate -F -p /subdomaindirectory -d newsubdomain.domain. または nispopulate -Y -d newsubdomain.domain. -h NISservername -a NIS_server_ipaddress -y NIS_domain |
クライアントをマスターサーバーの複製にする |
サブドメインマスターサーバー。スーパーユーザーとして行う |
nisserver -R -d subdomain.domain. -h clientname |
サブドメインの新しいクライアントを初期設定する。クライアントは、サブドメインの複製またはそのほかのサーバーにできる |
新しいサブドメインクライアントマシン。スーパーユーザーとして行う |
nisclient -i -d newsubdomain.domain. -h subdomainmaster |
ユーザーを NIS+ クライアントとして初期設定する |
クライアントマシン。ユーザーとして行う |
nisclient -u |
実際にコマンドを実行させないで、しかも NIS+ スクリプトがどんなコマンドを呼び出すかを表示するには、-x オプションを使います。-x オプションによって、あたかも実際にスクリプトを実行しているかのように、それらのコマンド名とそれぞれのおおよその出力を画面に表示できます。最初に -x を指定してスクリプトを実行すれば、結果を先に見ることができます。詳細は各スクリプトのマニュアルページを参照してください。
NIS+ ドメインを設定するための最初の作業が、ルートマスターサーバーの設定です。この節では、nisserver スクリプトを使用してデフォルト設定でルートマスターサーバーを構成する方法を説明します。ルートマスターサーバーは、次のデフォルトを使用します。
セキュリティレベル 2 (DES) - NIS+ セキュリティの最高レベル
NIS 互換を OFF に設定 (NIS 互換に設定する方法も記述)
ネームサービス情報の情報源としてシステム情報ファイル (/etc) または NIS マップ
NIS+ グループとして admin. domainname
nisserver スクリプトは、ルートマスターサーバーを設定するときに、ネームサービススイッチファイルを NIS+ 用に変更します。/etc/nsswitch.conf ファイルは後で変更できます。ネームサービススイッチについては、『Solaris ネーミングの管理』およびこのマニュアルの第 1 章「ネームサービススイッチの設定」を参照してください。
ルートマスターサーバーにしたいマシンの /etc/passwd ファイルに root のエントリがあるかどうかを確認します。
次の情報が必要です。
ルートマスターサーバーになるワークステーションのスーパーユーザーのパスワード
新しいルートドメインの名前。ルートドメイン名は少なくとも 2 つの要素 (ラベル) で構成し、その末尾にドットを置きます (例 something.com.)。最後の要素は実際には何でもかまわないのですが、インターネットとの互換性を保つには、インターネット組織コード (表 4-3) または 2 〜 3 文字の地域コード (日本であれば .jp.) にしなければなりません。
ドメイン |
種類 |
---|---|
com |
営利組織 |
edu |
教育機関 |
gov |
行政機関 |
mil |
軍事組織 |
net |
主要ネットワークサポートセンター |
org |
非営利組織 |
int |
国際組織 |
次の例では、ルートマスターサーバーに指定するマシンは master1 で、doc.com. が新しいルートドメインになります。
ドメインとホストでは、同じ名前を使用しないでください。たとえば、ルートドメインに doc.com. という名前を付けている場合、ドメイン内で使用するマシンには doc という名前は付けないでください。同様に、home という名前のマシンを使用している場合は、home という名前のドメインを作成しないでください。この注意事項は、サブドメインの場合にもあてはまります。たとえば、マシンに west という名前を付けている場合、sales.west.myco.com というサブドメインを作成しないでください。
スーパーユーザーの PATH
変数に /usr/lib/nis を追加します。
このパスを root の .cshrc または .profile ファイルに追加するか、または変数を直接設定します。
オプションで DES 認証を使用する場合には、Diffie-Hellman キー長を選択します。
640 ビットの Diffie-Hellman キーとデフォルトの 192 ビットのキーを使用するには、以下を入力します。
nisauthconf dh640-0 des |
640 ビットのキーだけを許可し、192 ビットのキーを拒否するには、以下を入力します。
nisauthconf dh640-0 |
次のコマンドをスーパーユーザー (root) として入力し、ルートマスターサーバーを構成します。
-r オプションはルートマスターサーバーを構成することを示します。-d オプションは NIS+ ドメイン名を指定します。
master1# nisserver -r -d doc.com. This script sets up this machine "master1" as a NIS+ root master server for domain doc.com. Domain name : doc.com. NIS+ group : admin.doc.com. NIS (YP) compatibility : OFF Security level : 2=DES Is this information correct? (type 'y' to accept, 'n' to change) |
「NIS+ group」とは、doc.com. ドメイン (ドメイン名は必ず最後にピリオドが付く) 内の情報を変更する許可が与えられたユーザーのグループを意味します。変更には削除も含まれます。このグループのデフォルト名は admin.domainname です。この名前の変更方法については、「誤った情報を変更する方法」を参照してください。
「NIS 互換」とは、NIS+ サーバーが NIS クライアントからの情報要求を受け付けるかどうかを意味します。デフォルト設定の OFF に設定されている場合、NIS+ サーバーは NIS クライアントからの要求を処理しません。ON に設定されている場合、NIS+ サーバーはこの要求を処理します。このスクリプトでは、NIS 互換設定を変更できます。「誤った情報を変更する方法」を参照してください。
このスクリプトは、マシンを NIS+ セキュリティの最高レベルであるセキュリティレベル 2 で設定します。このスクリプトを使用する場合、セキュリティレベルを変更できません。スクリプトが終了した後、適切な NIS+ コマンドでセキュリティレベルを変更できます。セキュリティレベルの変更については、『Solaris ネーミングの管理』および rpc.nisd(1M) のマニュアルページを参照してください。
y を入力します (画面の情報が正しい場合)。
n を入力すると、スクリプトは正しい情報の入力を要求します。( n を入力した場合の操作については、「誤った情報を変更する方法」を参照してください)。
Is this information correct? (type 'y' to accept, 'n'' to change) y This script will set up your machine as a root master server for domain doc.com. without NIS compatibility at security level 2. Use "nisclient -r" to restore your current network service environment. Do you want to continue? (type `y' to continue, `n' to exit the script) |
y を入力して、NIS+ の構成を続けます。
( n を入力するとスクリプトは安全に終了します)。y を選んだ後でスクリプトの実行中にスクリプトを中断した場合、スクリプトは動作を停止し、それまでに作成された構成内容はそのまま残されます。スクリプトは自動回復や後始末は行いません。このスクリプトはいつでも再実行できます。
Do you want to continue? (type 'y' to continue, 'n' to exit the script y setting up domain information "doc.com." ... setting up switch information ... running nisinit ... This machine is in the doc.com. NIS+ domain. Setting up root server ... All done. starting root server at security level 0 to create credentials... running nissetup ... (creating standard directories & tables) org_dir.doc.com. created Enter login password: |
プロンプトに対してマシンの root パスワードを入力し、Return キーを押します。
この例の場合、ユーザーは master1 マシンの root パスワードを入力しています。
Wrote secret key into /etc/.rootkey setting NIS+ group to admin.doc.com. ... restarting root server at security level 2 ... This system is now configured as a root server for domain doc.com. You can now populate the standard NIS+ tables by using the nispopulate or /usr/lib/nis/nisaddent commands. |
これでルートマスターサーバーが構成され、NIS+ の標準テーブルを生成する用意が整いました。続けてテーブルを生成する場合は、「NIS+ テーブルの生成 (populate)」に進みます。
上記の 手順 4 で返された情報の一部あるいは全部が誤っていたために n を入力した場合、次のように表示されます。
Is this information correct? (type 'y' to accept, 'n' to change) n Domain name: [doc.com.] |
ドメイン名が正しい場合は Return キーを押します。誤っている場合は、正しいドメイン名を入力して Return キーを押します。
この例では、Return キーを押して、目的のドメイン名が doc.com. であることを確認しました。次に、このスクリプトは NIS+ グループ名の確認を要求します。
Is this information correct? (type 'y' to accept, 'n' to change) n Domain name: [doc.com.] NIS+ group: [admin.doc.com.] |
NIS+ グループが正しければ Return キーを押します。間違っている場合、正しい NIS+ グループ名を入力して Return キーを押します。
この例では、名前を変更しました。次に、スクリプトは NIS 互換性の入力を要求します。
NIS+ group: [admin.doc.com.] netadmin.doc.com. NIS (YP) compatibility (0=off, 1=on): [0] |
NIS 互換性を必要としない場合は Return キーを押します。互換性が必要な場合は 1 を入力して Return キーを押します。
この例では、Return キーを押して、NIS 互換の状態が正しいことを確認しました。スクリプトは、情報が正しいかどうかを再度尋ねてきます。
このサーバーを NIS 互換に選択した場合、この選択を有効にするには、ファイルを編集して、rpc.nisd デーモンを再起動する必要があります。詳細は 「クライアントを NIS+ サーバーとして構成する方法」を参照してください。
NIS (YP) compatibility (0=off, 1=on): [0] Domain name : doc.com. NIS+ group : netadmin.doc.com. NIS (YP) compatibility : OFF Security level : 2=DES Is this information correct? (type 'y' to accept, 'n' to change) |
情報が正しい場合、「ルートマスターサーバーを作成する方法」の手順 3 に移ります。正しい情報となるまで、n を繰り返し選択できます。
multihomed NIS+ サーバーを設定する手順は、単一インタフェースサーバーの設定手順と同じです。唯一の相違点は、ローカルの /etc/hosts ファイル、/etc/inet/ipnodesファイルと NIS+ の hosts テーブル、ipnodes テーブル内に定義する必要があるインタフェースが、単一インタフェースサーバーの場合よりも多いという点です。ホスト情報を定義したら、nisclient と nisserver スクリプトを使用して multihomed NIS+ サーバーを設定します。multihomed 複製サーバーの設定の詳細は、「Multihomed NIS+ 複製サーバーの設定方法」を参照してください。
multihomed NIS+ サーバーを設定する場合は、サーバーの主体名はシステムのノード名と同じにする必要があります。これは、Secured RPC と nisclient を同時に使用する際の必要条件です。
Secured RPC は、ノード名を使用して認証に必要なネット名を作成する
nisclient は、主体名を使用してクライアントの資格を作成する
次に、NIS+ ルートマスターサーバーの設定手順を示します。
ルートマスター上で、サーバーのホスト情報を /etc/hosts ファイルまたは /etc/inet/ipnodes ファイル内に追加します。たとえば、3 つのイーサネットインタフェースを装備した hostA システムの場合、/etc/hosts ファイルには次のように入力します。
127.0.0.1 localhost loghost 192.168.10.x hostA hostA-10 hostA-le0 192.168.11.y hostA hostA-11 hostA-le1 192.168.12.z hostA hostA-12 |
nisserver を使用して、サーバーを multihomed NIS+ ルートサーバーとして設定します。
hostA# nisserver -r -d sun.com |
上記の例では、sun.com はルートドメイン名を表しています。ルートドメイン名を指定して nisserver コマンドを実行してください。
multihomed NIS+ ルートサーバーの設定が完了したら、このあとの設定手順は、単一インタフェースサーバーの設定手順とまったく同じです。
ルートマスターサーバーの構成が終了すると、他のネットワークサービスの情報から標準の NIS+ テーブルを生成できます。この節では、nispopulate(1M) スクリプトをデフォルトの設定で使用して、ファイルまたは NIS マップのデータからルートマスターサーバーのテーブルを生成する方法を説明します。このスクリプトは次のものを使用します。
前の例で作成されたドメイン (doc.com.)
ネットワークサービスのソースとしてシステム情報ファイルまたは NIS マップ
標準の NIS+ テーブル: auto_master、auto_home、ethers、 group、hosts、
networks、 passwd、protocols、services、 rpc、netmasks、bootparams、
netgroup、aliases
テーブルの情報源がファイルである場合、shadow ファイルの内容が passwd ファイルの内容とマージされて passwd テーブルが作成されます。shadow テーブルは作成されません。
スクリプト nispopulate を実行するには、次の条件が必要です。
データを読み込むローカルの /etc 内の各ファイルまたは NIS マップを表示します。不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。構成が完了した後は、いつでも各エントリを追加できます。後から追加する方が、不完全なエントリや破損したエントリを読み込むよりも簡単です。
ファイル内の情報は、それがロードされるテーブルに適合する書式でなければなりません。『Solaris ネーミングの管理』および第 9 章「NIS+ テーブルの設定」では、対応する NIS+ テーブルに変換するテキストファイルで要求される書式について説明しています。
ドメイン名とホスト名が同一でないことを確認します。ドメインとホストで同じ名前は使用しないでください。たとえば、sales というドメインを使用している場合、sales という名前の付いたマシンを使用しないでください。同様に、home という名前のマシンを使用する場合は、home という名前のドメインを作成しないでください。この注意事項は、サブドメインの場合にもあてはまります。たとえば、マシンに west という名前を付けている場合、sales.west.myco.com というサブドメインを作成しないでください。
ホスト名のドットと下線はすべて削除します。NIS+ では、ドット (ピリオド) をマシン名とドメインの間、および親ドメインとサブドメインの間の区切りに使用するため、ドットをマシン名に使うことはできません。DNS ではホスト名に下線を使うことを認めていませんので、ホスト名に下線を使うことはできません。nispopulate スクリプトを実行する前に、ホスト名で使用されているドットを必ず削除してください。ドットをハイフンに置き換えるのも 1 つの手です。たとえば、sales.alpha というマシン名は無効ですが、これを sales-alpha とすれば有効になります。
初めてネットワークを設定する場合、十分なネットワーク情報がどこにも格納されていないことがあります。このような場合、まずネットワーク情報を集め、「入力ファイル」に手入力する必要があります。このファイルは、基本的に /etc 内のファイルに対応するものです。
安全のため、/etc 内のファイルのコピーを作成します。実際のファイルは使用せずに、作成したコピーを使用してテーブルを生成してください。たとえば、この例では /nisplusfiles というディレクトリ内のファイルを使用します。
コピーした NIS テーブルファイルのうち、passwd、shadow、aliases、hosts の各ファイルには、名前空間全体に分散させるとセキュリティ上問題がある項目があるので、それらを編集します。たとえば、次に示す行をローカル側の passwd ファイルのコピーから削除して、名前空間からはそれらの情報にアクセスできないようにします。
root:x:0:1:0000-Admin(0000):/:/sbin/sh daemon:x:1:3:0000-Admin(0000):/: bin:x:3:5:0000-Admin(0000):/usr/bin: sys:x:3:3:0000-Admin(0000):/: adm:x:4:4:0000-Admin(0000):/var/adm: lp:x:78:9:0000-lp(0000):/usr/spool/lp: smtp:x:0:0:mail daemon user:/: uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp: nuucp:x:7:8:0000-uucp (0000):/var/spool/uucppublic:/usr/lib/uucp/uucico listen:x:22:6:Network Admin:/usr/net/nls nobody:x:60000:60000:uid no body:/: noaccess:x:60002:60002:uid no access:/: |
ドメインがすでに構成され、そのマスターサーバーが実行されている必要があります。
ドメインのサーバーには、新しいテーブル情報を収容できるだけの十分なディスク空き領域が必要です。
NIS+ 主体 (適切な資格を持つクライアント) としてログインし、指定されたドメイン内の NIS+ テーブルに対する書き込み権が必要です (この例では、マシン master1 上のユーザーは root) 。
ファイルから生成する場合、次の情報が必要です。
新しい NIS+ ドメイン名
適切に編集された変換されるデータを持つテキストファイルへのパス
ルートパスワード
NIS マップから生成する場合、次の情報が必要です。
新しい NIS+ ドメイン名
NIS ドメイン名
NIS サーバー名
NIS サーバーの IP アドレス
ルートパスワード
NIS のドメイン名では大文字と小文字を区別しますが、NIS+ のドメイン名では区別しません。
「a」または「b」を実行してルートマスターサーバーテーブルを生成し、手順 2 に進みます。
「a」では、ファイルからテーブルを生成する方法を示します。「b」では、NIS マップからテーブルを生成する方法を示します。これらのコマンドはスクロールできるウィンドウ内で実行します。そうしないと、スクリプトの出力がスクロールされて読めないことがあります。
システムの /tmp 領域が不足すると、nispopulate スクリプトが異常終了することがあります。このようなことが起こらないように、環境変数 TMPDIR
に別のディレクトリを設定できます。TMPDIR
に有効なディレクトリが設定されていない場合、スクリプトは /tmp ディレクトリを使用します。
次のように入力して、ファイルからテーブルを生成します。
master1# nispopulate -F -p /nis+files -d doc.com. NIS+ domain name : doc.com. Directory Path : /nis+files Is this information correct? (type 'y' to accept, 'n' to change) |
-F オプションは、テーブルがデータをファイルから取り出すことを示します。-p オプションは、入力ファイルが存在するディレクトリのパスを指定します (この例では、パスは /nis+files)。-d オプションは NIS+ ドメイン名を指定します (この例では、ドメイン名は doc.com.)。
NIS+ 主体のユーザーは root です。この例では、初めてルートマスターサーバーのテーブルを生成することになるため、この作業はスーパーユーザーとして実行しなければなりません。nispopulate スクリプトは、NIS+ 管理グループのすべてのメンバーの資格を追加します。
次のように入力して、NIS マップからテーブルを生成します。
master1# nispopulate -Y -d doc.com. -h salesmaster -a 130.48.58.111 -y sales.doc.com. NIS+ domain name : doc.com. NIS (YP) domain : sales.doc.com. NIS (YP) server hostname : salesmaster Is this information correct? (type 'y' to accept, 'n' to change) |
-Y オプションは、テーブルがデータを NIS マップから取り出すことを示します。-d オプションは、NIS+ ドメイン名を指定します。-h オプションは、NIS サーバーのマシン名を指定します。salesmaster は NIS サーバーの名前の例です。サンプルドメインを作成する際は、salesmaster の代わりに、サイトでの実際の NIS サーバー名を指定してください。-a オプションは、NIS サーバーの IP アドレスを指定します。130.48.58.111 はアドレスの例です。サンプルドメインを作成する際は、サイトでの実際の NIS サーバーの IP アドレスを指定してください。-y オプションは、NIS ドメイン名を指定します。sales.doc.com. はドメイン名の例です。サンプルドメインを作成する際は、sales.doc.com. の代わりに、サイトでの実際の NIS ドメインの NIS ドメイン名を指定してください。NIS ドメイン名は大文字と小文字が区別されることを忘れないでください。
NIS+ 主体のユーザーは root です。この例では、初めてルートマスターサーバーのテーブルを生成することになるため、この作業はスーパーユーザーとして実行しなければなりません。nispopulate(1M) スクリプトは、NIS+ 管理グループのすべてのメンバーの資格を追加します。
y を入力します (画面に表示された情報が正しい場合)。
n を入力すると、スクリプトは正しい情報の入力を要求します。情報が誤っている場合の操作は、「誤った情報を変更する方法」を参照してください。
手順 1 の「a」を実行すると、次のように表示されます。
Is this information correct? (type 'y' to accept, 'n' to change) y This script will populate the following NIS+ tables for domain doc.com. from the files in /nis+files: auto_master auto_home ethers group hosts networks passwd protocols services rpc netmasks bootparams netgroup aliases shadow **WARNING: Interrupting this script after choosing to continue may leave the tables only partially populated. This script does not do any automatic recovery or cleanup. Do you want to continue? (type 'y' to continue, 'n' to exit this script) |
手順 1 の「b」を実行すると、次のように表示されます。
Is this information correct? (type 'y' to accept, 'n' to change) y This script will populate the following NIS+ tables for domain doc.com. from the NIS (YP) maps in domain sales: auto_master auto_home ethers group hosts networks passwd protocols services rpc netmasks bootparams netgroup aliases **WARNING: Interrupting this script after choosing to continue may leave the tables only partially populated. This script does not do any automatic recovery or cleanup. Do you want to continue? (type 'y' to continue, 'n' to exit this script) |
y を入力して、テーブルの生成を続けます。
n を入力すると、スクリプトは安全に終了します。y を選択した後で、スクリプトの実行中にスクリプトを中断した場合、スクリプトは動作を停止し、テーブルは一部だけが生成されたままで残されることがあります。現在生成中であったテーブルは、一部だけが生成されていることがあります。スクリプトは自動回復や後始末は行いません。このスクリプトは安全に再実行できますが、テーブルは最新の情報で上書きされます。
ファイルからテーブルを生成する場合、スクリプトが hosts 情報と passwd 情報に基づいてホストとユーザーの資格を作成することを示す、次のようなメッセージが表示されます。
Do you want to continue? (type 'y' to continue, 'n' to exit this script) y populating auto_master table from file /nis+files/auto_master ... auto_master table done. populating auto_home table from file /nis+files/auto_home ... auto_home table done. Credentials have been added for the entries in the hosts and passwd table(s). Each entry was given a default network password (also known as a Secure- RPC password). This password is: nisplus Use this password when the nisclient script requests the network password. Done! |
Secure RPC パスワード (上の例では nisplus) は必ず控えておき、忘れないようにしてください。ネットワークパスワードまたは Secure RPC パスワードを求められたら、ここで控えておいたパスワードを入力します。
スクリプトは、必要なすべてのファイルを検索し、使用できるファイルからすべてのテーブルを生成します。
NIS マップからテーブルを生成する場合、スクリプトが hosts
と passwd
の情報に基づいてホストとユーザーの資格を作成する際に、次の内容が表示されます。
Do you want to continue? (type 'y' to continue, 'n' to exit this script) y populating auto_master table from sales.doc.com. NIS(YP) domain... auto_master table done. populating auto_home table from file sales.doc.com. NIS(YP) domain... auto_home table done. .... Credentials have been added for the entries in the hosts and passwd table(s). Each entry was given a default network password (also known as a Secure-RPC password). This password is: nisplus Use this password when the nisclient script requests the network password. Done! |
Secure RPC パスワード (上の例では nisplus) は必ず控えておき、忘れないようにしてください。ネットワークパスワードまたは Secure RPC パスワードを求められたら、ここで控えておいたパスワードを入力します。
これですべてのテーブルが生成されました。parse error という警告が表示されるかもしれませんが無視してかまいません。これらのエラーは、NIS+ が特定の NIS マップのフィールドで空の値または予期せぬ値を見つけたことを示します。必要に応じて、スクリプト終了後、データを検証してください。
ルートドメインの管理グループに自分自身と他の管理者を追加します (必要に応じて) 。
たとえば、自分自身のログイン ID が topadm で、他の管理者の ID が secondadmin の場合、次のように入力します。
master1# nisgrpadm -a admin.doc.com. topadm.doc.com. secondadm.doc.com. Added "topadm.doc.com." to group "admin.doc.com.". Added "secondadm.doc.com." to group "admin.doc.com.". |
上記の nisgrpadm -a コマンドの引数 admin.doc.com. は、グループ名を表し、最初に記述しなければなりません。残りの 2 つの引数は管理者名です。
この時点で管理グループにユーザーを追加したい場合にだけ、この手順が必要です。ルートサーバーに管理者を追加するには、この時点で行います。NIS+ を構成した後でも、管理グループにユーザーを追加できます。
この手順を実行するには、ほかの管理者がデフォルトパスワードを変更するまで待つ必要はありません。しかし、管理グループにほかの管理者を追加するには、その前に passwd テーブルに管理者が登録されていることが必要です。管理グループのメンバーは、ドメインに自分自身を追加しなければ、NIS+ 主体として行動できません。ユーザーの初期設定については、「NIS+ ユーザーを初期設定する方法」を参照してください。また、新規にメンバーが登録されても、管理グループに対する古いキャッシュが破棄された後でなければ有効になりません。
次のコマンドを入力して、ドメインのチェックポイントを実行します。
master1# nisping -C doc.com. Checkpointing replicas serving directory doc.com. Master server is master1.doc.com. Last update occurred at date Master server is master1.doc.com. checkpoint scheduled on master1.doc.com. |
この手順によって、そのドメインをサポートする全サーバーは、初期設定 (.log) ファイルから新しい情報をテーブルのディスク上のコピーに転送します。ルートドメインの設定が終了したばかりであるため、このルートドメインにはまだ複製が存在せず、この手順はルートマスターサーバーにだけ影響を与えます。
スワップ領域またはディスク領域が不足している場合、サーバーは適切にチェックポイントを実行できませんが、その旨の通知は行われません。スワップ領域またはディスク領域が不足していないか確認するには、niscat コマンドでテーブルの内容を表示します。たとえば、rpc テーブルの内容をチェックするには、次のように入力します。
master1# niscat rpc.org_dir rpcbind rpcbind 100000 rpcbind portmap 100000 rpcbind sunrpc 100000 |
スワップ領域が不足していると「チェックポイントを実行できない」という旨のメッセージではなく、次のエラーメッセージが表示されます。
can't list table: Server busy, Try Again. |
このメッセージには明示されていませんが、これはスワップ領域の不足を示します。スワップ領域を増やして、再度ドメインのチェックポイントを実行してください。
ルートマスターサーバーのテーブルがファイルまたは NIS マップから生成されると、NIS+ クライアントマシンを初期設定できます。ルートマスターサーバーは自分のドメインの NIS+ クライアントであるため、ルートマスターサーバーのこれ以上の初期化は必要ありません。この節では、nisclient スクリプトを使用して、デフォルトの設定で NIS+ クライアントを初期設定する方法を説明します。
前の例で使用したドメイン doc.com.
前の例で、nispopulate スクリプトによって作成された Secure RPC パスワード (ネットワークパスワードとも呼ばれる。デフォルトは nisplus)
「新しいクライアントマシンを初期設定する方法」で使用する -i オプションでは、DNS を使用してホスト名を検索するような NIS+ クライアントを構成しません。管理者は、明確にクライアントのネームサービススイッチファイルに DNS を指定する必要があります。DNS によるホスト名の検索については、『Solaris ネーミングの管理』およびこのマニュアルの第 1 章「ネームサービススイッチの設定」を参照してください。
nisclient スクリプトを使用するには、次の条件が必要です。
ドメインがすでに構成されていて、そのマスターサーバーが実行されている
ドメインのマスターサーバーのテーブルが生成されている。(少なくとも、hosts テーブルまたは ipnodes テーブルには新しいクライアントマシンのエントリが必要)
NIS+ クライアントとなるマシンにスーパーユーザーとしてログインしている。この例では、新しいクライアントマシン名は client1
次の情報が必要です。
ドメイン名
デフォルトの Secure RPC パスワード (nisplus)
クライアントとなるワークステーションの root のパスワード
クライアントのホームドメインにある NIS+ サーバーの IP アドレス
DES 認証を使用する場合には、マスターサーバー上で、Diffie-Hellman キー長が使用される。nisauthconf を使用して、マスターサーバー上で Diffie-Hellman キー長を確認する
DES 認証を使用する場合には、オプションで、Diffie-Hellman キー長を指定します。
マスターサーバー上で以下を入力します。
nisauthconf |
クライアントマシン上で nisauthconf コマンドを実行するときは、上記コマンドの出力を引数として使用します。たとえば、マスターサーバー上で nisauthconf を実行すると
dh640dh-0 des |
と出力される場合には、クライアントマシン上で次のコマンドを入力します。
nisauthconf dh640dh-0 des |
次のコマンドを入力して、新しいクライアントマシン上で新しいクライアントを初期設定します。
-i オプションはクライアントを初期設定します。-d オプションは新しい NIS+ ドメイン名を指定します。ドメイン名が指定されない場合、そのデフォルトは現在のドメイン名となります。-h オプションは NIS+ サーバーのホスト名を指定します。
client1# nisclient -i -d doc.com. -h master1 Initializing client client1 for domain "doc.com.". Once initialization is done, you will need to reboot your machine. Do you want to continue? (type 'y' to continue, 'n' to exit this script) |
y を入力します。
n を入力するとスクリプトが終了します。クライアントの /etc/hosts ファイルまたは /etc/inet/ipnodes ファイルにルートサーバーのエントリがない場合、スクリプトはルートサーバーの IP アドレスの入力を指示します。
Do you want to continue? (type 'y' to continue, 'n' to exit this script) y Type server master1's IP address: |
正しい IP アドレスを入力して、Return キーを押します。
この例では、アドレス 123.123.123.123 を使用します。
Type server master1's IP address: 123.123.123.123 setting up the domain information... setting up the name service switch information... At the prompt below, type the network password (also known as the Secure-RPC password) that you obtained either from your administrator or from running the nispopulate script. Please enter the Secure-RPC password for root: |
Secure RPC パスワード (ネットワークパスワード) がルートのログインパスワードと異なる場合のみ、Secure RPC パスワードを入力します。
この例では、デフォルトの nisplus を使用します。
パスワードは画面に表示されません。入力を誤った場合、正しいパスワードを入力するよう要求されます。2 回目も入力を誤った場合、スクリプトが終了し、前回のネットワークサービスが復元されます。この場合、スクリプトを再度実行してください。
Please enter the login password for root: |
このクライアントマシンの root パスワードを入力します。
パスワードは画面に表示されません。ネットワークパスワードと root のログインパスワードが同じ場合、root のログインパスワードの入力要求はありません。
root パスワードを入力すると、このマシンの資格が変更されます。ここで、このマシンでは RPC パスワードと root パスワードが同じになります。
Please enter the login password for root: Wrote secret key into /etc/.rootkey Your network password has been changed to your login one. Your network and login passwords are now the same. Client initialization completed!! Please reboot your machine for changes to take effect. |
クライアントマシンを再起動します。
ここで行なった変更は、マシンを再起動すると有効になります。
以上の手順により、この NIS+ クライアントマシンのユーザーを NIS+ ドメインに追加できるようになりました。
これまでに説明したクライアントの初期設定手順を、必要な各マシンで繰り返します。ほかのドメインのクライアントを初期設定するには、ドメイン名とマスターサーバー名を適宜変更して、上記の手順を繰り返します。
この章で説明する NIS+ ドメインのサンプルでは、ドメイン doc.com. 内の 4 台のクライアントを初期設定すると想定しています。そして、このうち 2 台のクライアントを非ルート (ルート以外の) NIS+ サーバーとして構成し、3 番目のクライアントを doc.com. ドメインのルートマスターサーバーのルート複製サーバーとして構成します。
システムをサーバーにするには、システムをどの種類のサーバーにするにしても、事前にシステムを親ドメインのクライアントにしておく必要があります。
マシンが NIS+ クライアントになったら、そのマシンのユーザーは自分自身を NIS+ ドメインに追加しなければなりません。ユーザーをドメインに追加するということは、Secure RPC パスワードをそのユーザーのログインパスワードに変更することを意味します。実際には、ユーザーのパスワードと Secure RPC パスワードが同じになります。この手順では nisclient(1M) スクリプトを使用します。
nisclient(1M) スクリプトを使用してユーザーを初期設定するには、次の条件が必要です。
ドメインがすでに構成され、そのマスターサーバーが実行されている
ドメインのマスターサーバーのテーブルが生成されている。少なくとも、hosts テーブルには新しいクライアントマシンのエントリが必要
ドメイン内のクライアントマシンが初期設定されている
クライアントマシンに「ユーザー」としてログインしている (この例では、ユーザー名は user1)
DES 認証を使用する場合には、クライアントマシンは、マスターサーバーと同じ Diffie-Hellman キー設定を使用
次の情報が必要です。
ユーザーのログイン名 (この例では user1)
デフォルトの Secure RPC パスワード (この例では nisplus)
NIS+ クライアントになるユーザーのログインパスワード
NIS+ クライアントになるユーザーとしてログインして、次のように nisclient コマンドを入力します。
user1prompt% nisclient -u At the prompt below, type the network password (also known as the Secure-RPC password) that you obtained either from your administrator or from running the nispopulate script. Please enter the Secure-RPC password for user1: |
Secure RPC パスワード (この例では nisplus) を入力します。
入力したパスワードは画面に表示されません。
Please enter the login password for user1: |
ユーザーのログインパスワードを入力し、Return キーを押します。
パスワードは画面に表示されません。
Your network password has been changed to your login one. Your network and login passwords are now the same |
これで、このユーザーは NIS+ クライアントになりました。全ユーザーを NIS+ クライアントにする必要があります。
初期設定が終了したら、どのクライアントマシンも次の NIS+ サーバーに変更できます。
ルート複製サーバー (ルートマスターサーバー上にある NIS+ テーブルのコピーを格納する)
ルートドメインのサブドメインのマスターサーバー
ルートドメインのサブドメインのマスターサーバーの複製サーバー
NIS+ マスタールートサーバーは 1 つしか持てません。ルート NIS+ サーバーは特殊な NIS+ サーバーです。この節ではルートマスターサーバーの構成方法は説明しません。詳細は、「NIS+ ルートサーバーの設定」を参照してください。
サーバーを構成する場合、次の 3 つの設定があります。
NIS と互換性なし
NIS と互換性あり
NIS との互換性と DNS 転送 − NIS+ 名前空間に SunOS 4.x クライアントが存在する場合にだけ、DNS 転送を設定する必要があります。NIS 互換モードの使用方法の詳細は、『NIS+ への移行』を参照してください。
サーバーとその複製は、NIS 互換についての設定が同じでなければなりません。設定が異なる場合、ネットワーク情報を受信するために NIS 互換の設定を必要とするクライアントは、必要なサーバーまたは複製サーバーを使用できなければ、この情報を受信できません。
この例では、マシン client1 がサーバーに変更されます。この手順では、NIS+ スクリプトの代わりに NIS+ コマンド rpc.nisd を使用します。
rpc.nisd を実行するには、次の条件が必要です。
ドメインがすでに構成され、そのマスターサーバーが実行されている
ドメインのマスターサーバーのテーブルが生成されている。少なくとも、hosts テーブルには新しいクライアントマシンのエントリが必要
ドメイン内のクライアントマシンが初期設定されている
クライアントマシンに root としてログインしている。(この例では、クライアントマシン名は client1)
DES 認証を使用する場合には、クライアントマシンはマスターサーバーと同じ Diffie-Hellman キー設定を使用する必要があります。
サーバーに変換するクライアントのスーパーユーザーのパスワードが必要です。
クライアントをサーバーとして構成するには、次の手順のどれかを実行します。この手順では、サーバーと同じ名前のディレクトリを作成し、サーバーの初期設定ファイルを作成します。これらは /var/nis に置かれます。
同じドメイン内のすべてのサーバーは、NIS 互換の設定が同じでなければなりません。たとえば、マスターサーバーが NIS 互換である場合、その複製も NIS 互換でなければなりません。
NIS と互換性のないサーバーを構成するには、次のコマンドを入力します。
client1# rpc.nisd |
サーバーの /etc/init.d/rpc ファイルを編集して、文字列 -EMULYP="-Y" を含む行のコメントアウトを解除して有効にします。
コメントアウトを解除するには、行の先頭から # を削除します。
スーパーユーザーとして、次のように入力します。
client1# rpc.nisd -Y |
次の手順を実行して、DNS 転送機能と NIS+ との互換性の両方の機能を備えた NIS+ サーバーを構成します。SunOS 4.x クライアントをサポートするには、両方の機能が必要です。
サーバーの /etc/init.d/rpc ファイルを編集します。文字列 -EMULYP="-Y" を含む行のコメントアウトを解除 (行の先頭から # を削除) して有効にします。
コメントアウトを解除するには、行の先頭から # を削除します。
上の行の引用符で囲まれた中に次のように -B を追加します。
次のコマンドをスーパーユーザーとして入力します。
client1# rpc.nisd -Y -B |
これで、このサーバーはドメインのマスターまたは複製として指定できます。
これまでのクライアントをサーバーに変更する手順を、必要なクライアントマシンごとに繰り返します。
この章で説明する NIS+ サンプルドメインは、3 台のクライアントをサーバーに変更すると想定しています。そして、サーバーの 1 台をルート複製サーバーに、もう 1 台を新しいサブドメインのマスターに、そして 3 台目を新しいサブドメインのマスターの複製に構成します。
NIS+ サービスを常に利用可能な状態にしておくため、ルート複製サーバーを少なくとも 1 つは作成しておくことをお勧めします。複製サーバーを作成すると複数のサーバーが存在することになり、要求の処理を分散させることができるため、ネットワーク要求の処理も高速化されます。
パフォーマンス上の理由から、1 つのドメインに多くの複製サーバーを置くことはお勧めできません。ただし、ネットワークが複数のサブネットで構成されている場合、あるいは広域ネットワーク (WAN) でリモートサイトに接続されている場合には、複製サーバーを追加した方がいい場合があります。
「サブネット」
複数のサブネットで構成されているドメインの場合、各サブネットに複製サーバーを少なくとも 1 つは作成することをお勧めします。そうしておけば、ネットワーク間の通信が一時的に途絶しても、接続が回復するまでの間、サブネットレベルの機能は維持されます。
「リモートサイト」
WAN によりリモートサイトに接続されているドメインの場合、WAN 接続の両側に複製サーバーを少なくとも 1 つは作成することをお勧めします。組織論的な見地からすれば、同一の NIS+ ドメインに物理的に離れた 2 つのサイトがあるのは意味のあることです。たとえば、ドメイン内のマスターサーバーとその複製サーバーがすべて一方のサイトに置かれている場合、そのサイトともう一方のサイトとの間の NIS+ ネットワークトラフィックが増大するのは目に見えています。もう一方のサイトにも複製サーバーを置いておけば、ネットワークトラフィックが減るはずです。複製サーバーの分散配置については、『NIS+ への移行』を参照してください。
最適な複製サーバーの数については、『Solaris ネーミングの管理』を参照してください。
「ルート複製サーバーを作成する方法」では、マシン client1 を doc.com. ドメインのルート複製サーバーとして構成します。この手順では、NIS+ スクリプトの nisserver を使用します。「NIS+ コマンドによる複製サーバーの構成」で説明しているように NIS+ コマンドを使用して複製サーバーを構成することもできます。
nisserver を実行してルート複製サーバーを作成するには、次の条件が必要です。
ドメインがすでに構成され、マスターサーバーが稼動している
マスターサーバーのテーブルが生成されている。少なくとも、hosts テーブルには新しいクライアントマシンのエントリが 1 つは必要
新たに作成した複製サーバーを doc.com. ドメインのクライアントマシンとして初期設定している。(具体的な手順については、「NIS+ クライアントマシンの設定」を参照)
新たに作成した複製サーバー上で rpc.nisd(1M) を起動している。(具体的な手順については、「NIS+ サーバーの設定」を参照)
ルートマスターサーバーにルートとしてログインしている。(この例では、ルートマスターマシン名は master1)
次の情報が必要です。
ドメイン名
クライアントマシン名 (この例では、client1 )
ルートマスターサーバーのスーパーユーザーのパスワード
NIS+ ドメインのルートマスターサーバー上でスーパーユーザー (root) として次のように入力して、ルート複製サーバーを作成します。
master1# nisserver -R -d doc.com. -h client1 This script sets up a NIS+ replica server for domain doc.com. Domain name: :doc.com. NIS+ server : :client1 Is this information correct? (type 'y' to accept, 'n' to change) |
-R オプションは複製サーバーが構成されることを示します。-d オプションは NIS+ ドメイン名 (このサンプルでは doc.com.) を指定します。-h オプションはルート複製サーバーとなるクライアントマシン (この例では client1) を指定します。
y を入力して続行します。
n を入力すると、スクリプトは正しい情報の入力を要求します。n を入力した場合の操作については、「誤った情報を変更する方法」を参照してください。
Is this information correct? (type 'y' to accept, 'n' to change) y This script will set up machine "client1" as an NIS+ replica server for domain doc.com. without NIS compatibility. The NIS+ server daemon, rpc.nisd, must be running on client1 with the proper options to serve this domain. Do you want to continue? (type 'y' to continue, 'n' to exit this script) |
y を入力して続行します。
n を入力するとスクリプトは問題なく終了します。クライアントマシン上で rpc.nisd が動作していない場合、スクリプトは自動的に終了します。
Is this information correct? (type 'y' to continue, 'n' to exit this script) y The system client1 is now configured as a replica server for domain doc.com.. The NIS+ server daemon, rpc.nisd, must be running on client1 with the proper options to serve this domain. If you want to run this replica in NIS (YP) compatibility mode, edit the /etc/init.d/rpc file on the replica server ' to uncomment the line which sets EMULYP to "-Y". This will ensure that rpc.nisd will boot in NIS-compatibility mode. Then, restart rpc.nisd with the "-Y" option. These actions should be taken after this script completes. |
上記のメッセージはオプションの手順に関するものです。NIS (YP) 互換ではないルート複製サーバーを NIS 互換にする場合にだけ、/etc/init.d/rpc ファイルを変更します。つまり、NIS 互換のサーバーとして構成されていないルート複製サーバーで NIS クライアント要求を実行する場合にだけ、このファイルの変更が必要になります。NIS 互換サーバーの作成については、「クライアントを NIS+ サーバーとして構成する方法」を参照してください。
[必要に応じて] 複製サーバーを NIS (YP) 互換モードで稼動させることができるように構成します。
複製サーバーを NIS 互換モードで稼動させるには、次の手順に従います。
新たに作成した複製サーバーに名前空間データをロードします。
これには次の 2 つの方法があります。
NIS+ の保存と復元の機能を使用して、マスターサーバーのデータを保存し、作成した複製サーバーに復元します (こちらの方法をお勧めします)。具体的な手順については、「nisrestore を使って名前空間データをロードする」を参照してください。
nisping を実行します。
nisping を実行すると、マスターサーバーのすべての NIS+ データを複製サーバーに完全に再同期させることができます。しかし、大きな名前空間の場合、処理に長時間かかることがあります。その間、マスターサーバーはビジーになって応答が遅く、また作成した複製サーバーはまだ NIS+ 要求に応答できない状態になることがあります。具体的な手順については、「nisping を使って名前空間データをロードする方法」を参照してください。
名前空間データのロードが終了すれば、マシン client1 は NIS+ ルート複製サーバーとなります。この新しいルート複製サーバーは、ルートドメインのクライアントからの要求を処理できます。これでドメインで使用可能なサーバーが 2 台となるため、要求を速く処理できます。
これらの手順に従って、複製サーバーを必要なだけ作ることができます。同じ手順を使ってサブドメインに複製サーバーを作ることもできます。
Multihomed NIS+ サーバーを設定する手順は、単一インタフェースサーバーの設定手順と同じです。唯一の相違点は、ローカルの /etc/hosts ファイル、/etc/inet/ipnodesファイルと NIS+ の hosts テーブルおよび ipnodes テーブル内に定義する必要があるインタフェースが、単一インタフェースサーバーよりも多いという点です。ホスト情報を定義したら、nisclient と nisserver スクリプトを使用して Multihomed NIS+ サーバーを設定します。
Multihomed NIS+ サーバーを設定する場合は、サーバーの主体名はシステムのノード名と同じにする必要があります。これは、Secured RPC と nisclient を同時に使用する際の必要条件です。
Secured RPC は、ノード名を使用して認証に必要なネット名を作成する
nisclient は、主体名を使用してクライアントの資格を作成する
次に、NIS+ ルートマスター以外のサーバーの設定手順を示します。以下の例では、ルートドメインの複製を作成しています。muitihomed ルートサーバーの設定方法については、「Multihomed NIS+ ルートマスターサーバーの設定方法」を参照してください。
サーバーのホスト情報を hosts ファイルまたは ipnodes ファイル内に追加します。たとえば、3 つのインタフェースを装備した hostB システムの場合は、次のように入力します。
192.168.11.y hostB hostB-11 192.168.12.x hostB hostB-12 192.168.14.z hostB hostB-14 |
ルートマスターサーバー上で、nispopulate または nisaddent のどちらかを使用して、新しいホスト情報を hosts テーブルまたは ipnodes テーブル内にロードします。たとえば、次のように入力します。
hostA# nispopulate -F -d sun.com hosts |
この例では、sun.com は NIS+ ルートドメイン名を表しています。自分の NIS+ ルートドメイン名を指定して nispopulate コマンドを実行してください。
ルートマスターサーバー上で、nisclient スクリプトを使用して新しいクライアントの資格を作成します。たとえば、次のように入力します。
hostA# nisclient -c -d sun.com hostB |
この例では、sun.com は ルートドメイン名を表しています。自分のルートドメイン名を指定して nisclient コマンドを実行してください。
ルートマスター以外のサーバー上で、新しいサーバーがまだ稼動していない場合は、nisclient を使用して新しいサーバーを起動し、このマシンを NIS+ クライアントとして初期化します。たとえば、次のように入力します。
hostB# nisclient -i -d sun.com |
この例では、sun.com は ルートドメイン名を表しています。自分のルートドメイン名を指定して nisclient コマンドを実行してください。
ルートマスター上で、nisserver を使用してルートマスター以外のサーバーを設定します。たとえば、次のように入力します。
hostA# nisserver -M -d eng.sun.com -h hostB.sun.com. |
この例では、eng.sun.com は NIS+ ドメイン名を表し、hostB.sun.com は NIS+ サーバーの完全指定ホスト名を表しています。nisserver コマンドは、自分の NIS+ ドメイン名と NIS+ サーバーの完全指定ホスト名を指定して実行してください。
ルートマスターサーバー上で、nisserver を使用して複製サーバーを設定します。たとえば、次のように入力します。
hostA# nisserver -R -d sun.com -h hostB.sun.com. |
この例では、sun.com は 複製サーバーを表し、hostB.sun.com は NIS+ サーバーの完全指定ホスト名を表しています。nisserver コマンドは、自分の複製サーバー名と NIS+ サーバーの完全指定ホスト名を指定して実行してください。
multihomed NIS+ 複製サーバーの設定が完了したら、このあとの設定手順は、単一インタフェースのサーバーの設定手順とまったく同じです。
この節では、ルート以外の新しいドメイン (サブドメイン) のマスターサーバーの作成方法を説明します。この新しいドメインは doc.com. ドメインのサブドメインとなります。NIS+ の階層構造によって、組織構造に合わせたドメイン構造を作成できます。
この例では、マシン client2 が sub.doc.com. という新しいドメインのマスターサーバーに変更されます。ここでは NIS+ スクリプトの nisserver を使用します。
nisserver を実行して、新しいサブドメインのマスターサーバーを作成するには、次の条件が必要です。
親ドメインがすでに構成され、そのマスターサーバーが実行されている
親ドメインのテーブルが生成されている。少なくとも、hosts テーブルに新しいクライアントマシンのエントリが必要
親ドメイン内の新しいクライアントマシンが初期設定されている
クライアント上で rpc.nisd が起動されている
新しいドメインを追加するための適切なアクセス権がある。この例では、親マスターサーバーに root としてログインする。(この例では、親マスターマシン名は master1)
次の情報が必要です。
新しいサブドメインの名前 − 親ドメインの名前を含んだ新しいドメイン名。書式は、「 newdomain.rootdomain」となる
クライアントマシンの名前 (この例では、client2)
親マスターサーバーのスーパーユーザーパスワード
「新しい非ルートドメインを作成する方法」では、新しいサブドメインを sub.doc.com. とします。
Solaris リリース 2.6 およびこれ以前のリリースでは、どんな NIS+ クライアントでも、そのサービスの提供先となるドメインの上位ドメインに置かれている限り、NIS+ マスターサーバーに変更できます。たとえば、ドメイン sales.doc.com. 内の NIS+ クライアントは、west.sales.doc.com. や alameda.west.sales.doc.com. などの下位の階層に属するドメインにサービスを提供できます。しかし、このクライアントは doc.com. ドメインにはサービスを提供できません。その理由は、doc.com. がドメイン sales.doc.com. より上位の階層にあるためです。ただし、ルート複製サーバーはこのルールの唯一の例外であり、サービス提供先のドメインのクライアントです。
Solaris リリース 7 およびリリース 8 では、ドメインの NIS+ サーバーを、それがサービスしている同じドメイン内に置くことができます。これによって、サーバーとドメイン階層の他の部分との通信を安全な状態に保ったまま、サーバーのドメイン名をそのクライアントが使用しているドメイン名と同じに設定することができます。nisinit の -k オプションおよび nisserver の -d オプションを参照してください。
NIS+ ドメインのルートマスターサーバー上のスーパーユーザー (root) として次のように入力し、新しい非ルートドメインマスターサーバーを作成します。
-M オプションは、新しい非ルートドメインのマスターサーバーを作成することを示します。-d オプションは、ドメイン名 (この例では、sales.doc.com.) を指定します。-h オプションは、新しいドメインのマスターサーバーになるクライアントマシン (この例では、client2) を指定します。
master1# nisserver -M -d sales.doc.com. -h client2 This script sets up a non-root NIS+ master server for domain sales.doc.com. Domain name : sales.doc.com. NIS+ server : client2 NIS+ group : admin.sales.doc.com. NIS (YP) compatibility : OFF Security level : 2=DES Is this information correct? (type 'y' to accept, 'n' to change) |
新しい非ルートドメインのマスターサーバーは、ルートサーバーと同じデフォルト値によって作成されます。NIS+ グループ、NIS (YP) 互換性、およびセキュリティレベルの詳細は、「ルートマスターサーバーを作成する方法」を参照してください。
y を入力して操作を続けます。
n を入力すると、スクリプトは正しい情報の入力を要求します。n を入力した場合の操作については、「誤った情報を変更する方法」を参照してください。
Is this information correct? (type 'y' to accept, 'n' to change) y This script sets up machine "client2" as an NIS+ non- root master server for domain sales.doc.com. Do you want to continue? (type 'y' to continue, 'n' to exit this script) |
y を入力して操作を続けます。
n を入力すると、スクリプトは安全に終了します。クライアントマシン上で rpc.nisd が動作していない場合、スクリプトは自動的に終了します。
Do you want to continue? (type 'y' to continue, 'n' to exit this script) y running nissetup ... org_dir.sales.doc.com. created groups_dir.sales.doc.com. created ... ... setting NIS+ group admin.sales.doc.com. ... The system client2 is now configured as a non-root server for domain sales.doc.com. You can now populate the standard NIS+ tables by using the nispopulate or /usr/lib/nis/nisaddent commands. |
これで、マシン client2 は sales.doc.com. ドメインのマスターサーバーになりました。sales.doc.com. ドメインは doc.com. ドメインのサブドメインです。マシン client2 は、依然としてルートドメイン doc.com. のクライアントであり、しかも sales.doc.com. ドメインのマスターサーバーでもあります。
これで、sales.doc.com. ドメインの新しいマスターサーバーに標準の NIS+ テーブルを生成できます。
サーバーを新しい非ルートドメインのマスターサーバーに変更する前述の手順を、必要な各サーバーマシンに対し繰り返します。新しいマスターサーバーはすべて新しいドメインです。ドメイン構造の計画を立ててから、NIS+ 名前空間の作成を始めます。NIS+ 階層の計画については、第 2 章「NIS+ 入門」を参照してください。
新しいドメインを作成したら、そのマスターサーバーの標準の NIS+ テーブルを生成しなければなりません。新しいマスターサーバーのテーブルを生成するには、ルートマスターサーバーのテーブルを生成するときと同じ手順を使用します。大きな違いは、nispopulate(1M) スクリプトが、ルートマスターサーバー上ではなく、新しいマスターサーバー上で実行されることです。また、ドメイン名、およびファイルパス、または NIS サーバー名も変わることがあります。
この例では、新しいドメイン (sales.doc.com.) のテーブルを生成します。
スクリプト nispopulate を実行して新しいマスターサーバーのテーブルを生成するには、次の条件が必要です。
ファイル内の情報は、それがロードされるテーブルに合わせて書式設定されていなければなりません。
スクリプトを実行する前に、データを読み込むローカルの /etc 内の各ファイルまたは NIS マップを調べます。不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。変更を完了した後は、いつでも各エントリを追加できます。後から追加する方が、不完全なエントリや破損したエントリを読み込むよりも簡単です。
初めてネットワークを設定する場合、十分なネットワーク情報がどこにも格納されていないことがあります。このような場合、まずネットワーク情報を集め、「入力ファイル」に手入力する必要があります。このファイルは、基本的に /etc 内のファイルに対応するものです。
安全のため、/etc 内のファイルのコピーを作成します。実際のファイルは使用せずに、作成したコピーを使用してテーブルを生成してください。たとえば、この例では /nis+files というディレクトリ内のファイルを使用します。
コピーした NIS テーブルファイルのうち、passwd
、shadow
、aliases
、hosts
の各ファイルには、名前空間全体に分散させるとセキュリティ上問題がある項目があるので、それらを編集します。たとえば、次に示す行をローカル側の passwd
ファイルのコピーから削除して、名前空間からはそれらの情報にアクセスできないようにします。
root:x:0:1:0000-Admin(0000):/:/sbin/sh daemon:x:1:3:0000-Admin(0000):/: bin:x:3:5:0000-Admin(0000):/usr/bin: sys:x:3:3:0000-Admin(0000):/: adm:x:4:4:0000-Admin(0000):/var/adm: lp:x:78:9:0000-lp(0000):/usr/spool/lp: smtp:x:0:0:mail daemon user:/: uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp: nuucp:x:7:8:0000- uucp (0000):/var/spool/uucppublic:/usr/lib/uucp/uucico listen:x:22:6:Network Admin:/usr/net/nls: nobody:x:60000:60000:uid no body:/: noaccess:x:60002:60002:uid no access:/: |
ドメインがすでに構成され、そのマスターサーバーが実行されていなければなりません。
ドメインのサーバーには、新しいテーブル情報を収容できるだけの十分なディスク空き領域が必要です。
NIS+ 主体としてログインしていて、しかも指定されたドメイン内の NIS+ テーブルに対する書き込み権が必要です。この例では、マシン client2 上の root でなければなりません。
システム上の /tmp 領域が不足する場合、nispopulate スクリプトは異常終了することがあります。これを防止するには、環境変数 TMPDIR
に別のディレクトリを設定します。TMPDIR
に有効なディレクトリが設定されていない場合、スクリプトは代わりに /tmp ディレクトリを使用します。
ファイルから生成する場合、次の情報が必要です。
新しい NIS+ ドメイン名
データが転送される、適切に編集されたテキストファイルのパス
NIS+ マスターサーバーの root パスワード
NIS マップから生成する場合、次の情報が必要です。
新しい NIS+ ドメイン名
NIS ドメイン名
NIS サーバー名
NIS サーバーの IP アドレス
NIS+ マスターサーバーの root パスワード
NIS ドメインの名前は大文字と小文字を区別しますが、NIS+ ドメインの名前は区別しません。
この手順は、「ルートマスターサーバーのテーブルを生成する方法」の手順と実質的に同じなので、この例では、新しいドメイン (sales.doc.com.) のテーブルを生成するための入力についてだけ説明します。この手順の詳細は、「ルートマスターサーバーのテーブルを生成する方法」を参照してください。
このスクリプトは、ルートマスターサーバーではなく、新しいドメインのマスターサーバー上で実行しなければなりません。
次のいずれかの方法で、新しいマスターサーバー上にマスターサーバーテーブルを生成します。
ファイルからマスターサーバーテーブルを生成する
NIS マップからマスターサーバーテーブルを生成する
実行結果が一度に表示しきれないことがあるので、どちらの方法で行うにしてもスクロール可能なウィンドウを使用してください。
ファイルからマスターサーバーテーブルを生成するには、次のコマンドを入力します。
client2# nispopulate -F -p /nis+files -d sales.doc.com. NIS+ domain name : sales.doc.com. Directory Path : /nis+files Is this information correct? (type 'y' to accept, 'n' to change |
NIS マップからマスターサーバーテーブルを生成するには、次のコマンドを入力します。
client2# nispopulate -Y -d sales.doc.com. -h businessmachine -a IP_addr_of_NIS_server -y business.doc.com. NIS+ Domain name : sales.doc.com. NIS (YP) domain : business.doc.com. NIS (YP) server hostname : businessmachine Is this information correct? (type 'y' to accept, 'n' to change) |
このスクリプトの残りの出力については、「ルートマスターサーバーのテーブルを生成する方法」を参照してください。
ルートドメイン複製サーバーに対して適用される規則は、サブドメイン複製サーバーに対しても適用されます ( 「ルート複製サーバーの作成」を参照)。
サブドメインの複製サーバーの作成には、ルート複製サーバーの作成と同じ手順を使用します。このルート複製サーバーの作成とサブドメイン複製サーバーの作成との大きな違いは、サブドメイン複製サーバーに変更しようとしているマシンが、複製サーバーとしてサービスを提供することになるドメインより上位のドメインのクライアントのままであることです。この例では、新しいドメインの複製サーバーを作成するための入力だけを示します。スクリプトの残りの出力については、「ルート複製サーバーを作成する方法」を参照してください。
nisserver を実行して複製サーバーを作成するには、次の条件が必要です。
ドメインがすでに設定され、そのマスターサーバーが実行されている
ドメインのテーブルが生成されている。少なくとも、hosts テーブルには新しいクライアントマシンのエントリが必要
親ドメイン内のクライアントマシンが初期設定されている
クライアント上で rpc.nisd が起動されている
マスターサーバーにルートとしてログインしている (この例では、マスターマシン名は client2)
ドメイン名
クライアントマシン名 (この例では、client3)
ルートマスターサーバーのスーパーユーザーのパスワード
複製サーバーを作成するには、NIS+ ドメインのマスターサーバー上でスーパーユーザー (root) として、nisserver -R コマンドを実行します。
client2# nisserver -R -d sales.doc.com. -h client3 This script sets up a NIS+ replica server for domain sales.doc.com. Domain name :sales.doc.com. NIS+ server :client Is this information correct? (type 'y' to accept, 'n' to change) |
この例では、client2 がマスターサーバーです。-R オプションは、複製サーバーを構成することを示します。-d オプションは NIS+ ドメイン名 (ここでは、sales.doc.com.) を指定します。-h オプションは複製サーバーとなるクライアントマシン (ここでは client3) を指定します。なお、このマシンは依然として doc.com. ドメインのクライアントであり、sales.doc.com. ドメインのクライアントではありません。
このスクリプトの残りの出力については、「ルート複製サーバーを作成する方法」を参照してください。
マスターサーバーのテーブルをファイルまたは NIS マップから生成すれば、NIS+ クライアントマシンを初期設定できます。この節では、デフォルト設定の nisclient スクリプトを使用して、新しいドメイン内の NIS+ クライアントを初期設定する方法を説明します。NIS+ クライアントマシンは、NIS+ マスターサーバーとは別のワークステーションです。
「新しいサブドメインクライアントマシンを初期設定する方法」で使用される -i オプションは、NIS+ クライアントを DNS を必要とするホスト名の解決ができるようには構成しません。DNS を使用する場合には、ネームサービススイッチファイルの中でクライアント用に、DNS を明確に指定しなければなりません。DNS によるホスト名の解決については、「DNS を使用できるようにする」を参照してください。
新しいドメイン内のクライアントを初期設定するには、ルートドメイン内のクライアントの初期設定と同じ手順を使用します。この例では、新しいドメインのクライアントを初期設定するための入力だけを示します。スクリプトの残りの出力については、「新しいクライアントマシンを初期設定する方法」を参照してください。
nisclient スクリプトを使用してユーザーを初期設定するには、次の条件が必要です。
ドメインがすでに構成され、そのマスターサーバーが実行されている
ドメインのマスターサーバーのテーブルが生成されている。少なくとも、hosts テーブルには新しいクライアントマシンのエントリが必要
ドメイン内のクライアントマシンが初期設定されている
クライアントマシンに「ユーザー」としてログインしている (この例では、ユーザーの名前は user1)
次の情報が必要です。
ドメイン名 (この例では、sales.doc.com.)
デフォルトの Secure RPC パスワード (nisplus)
クライアントになるワークステーションの root パスワード
クライアントのホームドメイン内の NIS+ サーバーの IP アドレス (この例では、マスターサーバー client2 のアドレス)
新しいクライアントマシン上で新しいクライアントを初期設定するには、スーパーユーザーとして次のコマンドを入力します。
subclient1# nisclient -i -d sales.doc.com. -h client2 Initializing client subclient1 for domain "sales.doc.com.". Once initialization is done, you will need to reboot your machine. Do you want to continue? (type 'Y' to continue, 'N' to exit this script) |
-i オプションはクライアントを初期設定します。-d オプションは新しい NIS+ ドメイン名を指定します。ドメイン名が指定されない場合、現在のドメイン名がデフォルトになります。-h オプションは NIS+ サーバーのホスト名を指定します。
このスクリプトの残りの出力については、「新しいクライアントマシンを初期設定する方法」を参照してください。
新しいドメイン内のユーザーを初期設定するには、ルートドメイン内のユーザーを初期設定する場合と同じ手順 (nisclient) を使用します。全ユーザーが NIS+ クライアントにならなければなりません。この例では、新しいドメインのユーザーを初期設定するための入力だけを示します。スクリプトの残りの出力については、「NIS+ ユーザーを初期設定する方法」を参照してください。
nisclient スクリプトを使用してユーザーを初期設定するには、次の条件が必要です。
ドメインがすでに構成され、そのマスターサーバーが実行されている
ドメインのマスターサーバーのテーブルが生成されている。少なくとも、hosts テーブルには新しいクライアントマシンのエントリが必要
ドメイン内のクライアントマシンが初期設定されている
クライアントマシンに「ユーザー」としてログインしている (この例では、ユーザー名は user2)
次の情報が必要です。
ユーザーのログイン名 (この例では、user2)
デフォルトのネットワークパスワード (この例では、nisplus)
NIS+ クライアントになるユーザーのログインパスワード
NIS+ クライアントとなるには、ユーザーとしてログインして、次のコマンドを実行します。
user2prompt% nisclient -u At the prompt below, type the network password (also known as the Secure-RPC password) that you obtained either from your administrator or from running the nispopulate script. Please enter the Secure-RPC password for user2: |
このスクリプトの残りの出力については、「NIS+ ユーザーを初期設定する方法」を参照してください。
名前空間サンプルの作成で使用したコマンドを表 4-4 にまとめます。各コマンドの前にあるプロンプトは、そのコマンドをどのマシンで入力するかを示します。
表 4-4 NIS+ 名前空間サンプルのコマンド行のまとめ
目的 |
コマンド行 |
---|---|
|
# setenv PATH $PATH:/usr/lib/nis または # PATH=$PATH:/usr/lib/nis; export PATH |
オプションで Diffie-Hellman キー長を設定する |
master1# nisauthconf dh640-0 des |
doc.com. ドメインのルートマスターサーバーを作成 |
master1# nisserver -r -d doc.com. |
ルートマスターサーバーの NIS+ テーブルを、ファイルまたは NIS マップから生成 |
master1# nispopulate -F -p /nis+files -d doc.com. または master1# nispopulate -Y -d doc.com. -h salesmaster -a ¥ 130.48.58.111 -y sales.doc.com. |
管理グループ (2) にメンバーを追加する |
master1# nisgrpadm -a admin. doc.com. topadmin.doc.com. ¥ secondadmin.doc.com. |
NIS+ データベースのチェックポイントを実行 |
master1# nisping -C org_dir. doc.com. |
オプションで Diffie-Hellman キー長を設定する |
client1# nisauthconf dh640-0 des |
doc.com. ドメイン内の NIS+ クライアントマシンを初期設定 |
client1# nisclient -i -d doc.com. -h master1 |
ユーザーを NIS+ クライアントとして初期設定 |
client1user1prompt% nisclient -u |
NIS+ クライアントを、NIS 互換性あり、またはなし、あるいは NIS と DNS ありで NIS+ サーバーに変更 |
client1# rpc.nisd または client1# rpc.nisd -Y または client1# rpc.nisd -Y -B |
ルート複製サーバーを作成 |
master1# nisserver -R -d doc.com. -h client1 |
サーバーを sales.doc.com.ドメインの非ルートのマスターサーバーに変更 |
master1# nisserver -M -d sales.doc.com. -h client2 |
新しいマスターサーバーの NIS+ テーブルを、ファイルまたは NIS マップから生成 |
client2# nispopulate -F -p /nis+files -d sales.doc.com. または client2# nispopulate -Y -d sales.doc.com. -h ¥ businessmachine -a 130.48.58.242 -y business.doc.com. |
マスターサーバーの複製を作成 |
client2# nisserver -R -d sales.doc.com. -h client3 |
sales.doc.com.ドメイン内の NIS+ クライアントを初期設定 |
subclient1# nisclient -i -d sales.doc.com. -h client2 |
ユーザーを NIS+ クライアントとして初期設定 |
subclient1user2prompt% nisclient -u |