Solaris ネーミングの設定と構成

第 4 章 スクリプトを使用した NIS+ の設定

この章では、nisservernispopulatenisclient の各スクリプトと NIS+ コマンドを組み合わせて、基本的な 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+ 名前空間を作成する方法を説明します。NIS+ 名前空間のサンプルは、/etc 内のファイルと NIS マップから作成されます。このサンプルでは、サイトで NIS を実行している場合と実行していない場合の両方について、スクリプトの使用方法を説明します。サーバーが NIS クライアントにサービスを提供する場合、サーバーを NIS 互換モードに設定できます。NIS 互換モードの詳細は、『NIS+ への移行』および『Solaris ネーミングの管理』を参照してください。


注 -

サイトの実際の NIS+ 名前空間とそのドメイン階層は、名前空間サンプルのものとはおそらく異なり、サーバー、クライアント、およびドメインの数も異なります。最終的なドメイン構成と階層は、このサンプルと異なるものと考えてください。この名前空間サンプルは、NIS+ スクリプトの使用法を説明するためだけのものです。この名前空間サンプルを作成すると、自分のサイトでのドメイン、サーバー、およびクライアントの作成方法も理解できるはずです。


名前空間サンプルには次の構成要素があります。

ここでは、/etc/hosts などのシステム情報ファイルと NIS マップの両方を使用してネットワークサービス情報を格納するサイトで、NIS+ の設定に使用されるスクリプトを説明します。NIS+ 名前空間サンプルでこのような混合型のサイトを使用するのは、単にサンプルとして示すことが目的です。

NIS+ スクリプトのコマンド行の要約

NIS+ ドメインの例を作成する場合の NIS+ スクリプトとコマンドの一般的な順序を、表 4-2 に示します。このあとの節ではこれらのコマンド行について詳しく説明します。NIS+ のドメイン、サーバー、およびクライアントの作成に必要な作業に習熟した後、表 4-2 はコマンド行のクイックリファレンスガイドとして使用してください。表 4-2 は、NIS+ 名前空間サンプルを作成するために実際に入力するコマンドと変数をまとめたものです。

表 4-2 NIS+ ドメインの構成に使うコマンド行のまとめ

目的 

対象マシン 

コマンド行 

/usr/lib/nis を root のパスに追加する。C シェルまたは Boure シェルを使用

ルートマスターサーバーとクライアントマシン。スーパーユーザーとして行う 

setenv PATH $PATH:/usr/lib/nis

または 

PATH=$PATH:/usr/lib/nis; export PATH

オプションで 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+ ルートサーバーの設定

NIS+ ドメインを設定するための最初の作業が、ルートマスターサーバーの設定です。この節では、nisserver スクリプトを使用してデフォルト設定でルートマスターサーバーを構成する方法を説明します。ルートマスターサーバーは、次のデフォルトを使用します。


注 -

nisserver スクリプトは、ルートマスターサーバーを設定するときに、ネームサービススイッチファイルを NIS+ 用に変更します。/etc/nsswitch.conf ファイルは後で変更できます。ネームサービススイッチについては、『Solaris ネーミングの管理』およびこのマニュアルの第 1 章「ネームサービススイッチの設定」を参照してください。


nisserver を実行するための前提条件

ルートマスターサーバーにしたいマシンの /etc/passwd ファイルに root のエントリがあるかどうかを確認します。

必要な情報

次の情報が必要です。

表 4-3 インターネット組織コード

ドメイン 

種類 

com

営利組織 

edu

教育機関 

gov

行政機関 

mil

軍事組織 

net

主要ネットワークサポートセンター 

org

非営利組織 

int

国際組織 

次の例では、ルートマスターサーバーに指定するマシンは master1 で、doc.com. が新しいルートドメインになります。


注 -

ドメインとホストでは、同じ名前を使用しないでください。たとえば、ルートドメインに doc.com. という名前を付けている場合、ドメイン内で使用するマシンには doc という名前は付けないでください。同様に、home という名前のマシンを使用している場合は、home という名前のドメインを作成しないでください。この注意事項は、サブドメインの場合にもあてはまります。たとえば、マシンに west という名前を付けている場合、sales.west.myco.com というサブドメインを作成しないでください。


ルートマスターサーバーを作成する方法

  1. スーパーユーザーの PATH 変数に /usr/lib/nis を追加します。

    このパスを root の .cshrc または .profile ファイルに追加するか、または変数を直接設定します。

  2. オプションで DES 認証を使用する場合には、Diffie-Hellman キー長を選択します。

    640 ビットの Diffie-Hellman キーとデフォルトの 192 ビットのキーを使用するには、以下を入力します。


    nisauthconf dh640-0 des

    640 ビットのキーだけを許可し、192 ビットのキーを拒否するには、以下を入力します。


    nisauthconf dh640-0
  3. 次のコマンドをスーパーユーザー (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) のマニュアルページを参照してください。


  4. 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)
  5. 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:

    nissetup(1M) コマンドは、各 NIS+ テーブルのディレクトリを作成します。

  6. プロンプトに対してマシンの 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.]
  1. ドメイン名が正しい場合は 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.]
  2. NIS+ グループが正しければ Return キーを押します。間違っている場合、正しい NIS+ グループ名を入力して Return キーを押します。

    この例では、名前を変更しました。次に、スクリプトは NIS 互換性の入力を要求します。


    NIS+ group: [admin.doc.com.] netadmin.doc.com.
    NIS (YP) compatibility (0=off, 1=on): [0]
  3. 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+ ルートマスターサーバーの設定方法

multihomed NIS+ サーバーを設定する手順は、単一インタフェースサーバーの設定手順と同じです。唯一の相違点は、ローカルの /etc/hosts ファイル、/etc/inet/ipnodesファイルと NIS+ の hosts テーブル、ipnodes テーブル内に定義する必要があるインタフェースが、単一インタフェースサーバーの場合よりも多いという点です。ホスト情報を定義したら、nisclientnisserver スクリプトを使用して multihomed NIS+ サーバーを設定します。multihomed 複製サーバーの設定の詳細は、「Multihomed NIS+ 複製サーバーの設定方法」を参照してください。


注意 - 注意 -

multihomed NIS+ サーバーを設定する場合は、サーバーの主体名はシステムのノード名と同じにする必要があります。これは、Secured RPC と nisclient を同時に使用する際の必要条件です。

ノード名と主体名が異なる場合、Secured RPC 認証は適正に動作できず、その結果 NIS+ で問題が発生します。


次に、NIS+ ルートマスターサーバーの設定手順を示します。

  1. ルートマスター上で、サーバーのホスト情報を /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
      
  2. nisserver を使用して、サーバーを multihomed NIS+ ルートサーバーとして設定します。


    hostA# nisserver -r -d sun.com
    

    上記の例では、sun.com はルートドメイン名を表しています。ルートドメイン名を指定して nisserver コマンドを実行してください。

    multihomed NIS+ ルートサーバーの設定が完了したら、このあとの設定手順は、単一インタフェースサーバーの設定手順とまったく同じです。

NIS+ テーブルの生成 (populate)

ルートマスターサーバーの構成が終了すると、他のネットワークサービスの情報から標準の NIS+ テーブルを生成できます。この節では、nispopulate(1M) スクリプトをデフォルトの設定で使用して、ファイルまたは NIS マップのデータからルートマスターサーバーのテーブルを生成する方法を説明します。このスクリプトは次のものを使用します。


注 -

テーブルの情報源がファイルである場合、shadow ファイルの内容が passwd ファイルの内容とマージされて passwd テーブルが作成されます。shadow テーブルは作成されません。


nispopulate を実行するための前提条件

スクリプト nispopulate を実行するには、次の条件が必要です。


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 のドメイン名では大文字と小文字を区別しますが、NIS+ のドメイン名では区別しません。


ルートマスターサーバーのテーブルを生成する方法

  1. 「a」または「b」を実行してルートマスターサーバーテーブルを生成し、手順 2 に進みます。

    「a」では、ファイルからテーブルを生成する方法を示します。「b」では、NIS マップからテーブルを生成する方法を示します。これらのコマンドはスクロールできるウィンドウ内で実行します。そうしないと、スクリプトの出力がスクロールされて読めないことがあります。


    注 -

    システムの /tmp 領域が不足すると、nispopulate スクリプトが異常終了することがあります。このようなことが起こらないように、環境変数 TMPDIR に別のディレクトリを設定できます。TMPDIR に有効なディレクトリが設定されていない場合、スクリプトは /tmp ディレクトリを使用します。


    1. 次のように入力して、ファイルからテーブルを生成します。


      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+ 管理グループのすべてのメンバーの資格を追加します。

    2. 次のように入力して、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+ 管理グループのすべてのメンバーの資格を追加します。

  2. 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)
  3. 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 マップからテーブルを生成する場合、スクリプトが hostspasswd の情報に基づいてホストとユーザーの資格を作成する際に、次の内容が表示されます。


      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 マップのフィールドで空の値または予期せぬ値を見つけたことを示します。必要に応じて、スクリプト終了後、データを検証してください。

  4. ルートドメインの管理グループに自分自身と他の管理者を追加します (必要に応じて) 。

    たとえば、自分自身のログイン 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+ ユーザーを初期設定する方法」を参照してください。また、新規にメンバーが登録されても、管理グループに対する古いキャッシュが破棄された後でなければ有効になりません。

  5. 次のコマンドを入力して、ドメインのチェックポイントを実行します。


    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+ クライアントマシンを初期設定できます。ルートマスターサーバーは自分のドメインの NIS+ クライアントであるため、ルートマスターサーバーのこれ以上の初期化は必要ありません。この節では、nisclient スクリプトを使用して、デフォルトの設定で NIS+ クライアントを初期設定する方法を説明します。


注 -

「新しいクライアントマシンを初期設定する方法」で使用する -i オプションでは、DNS を使用してホスト名を検索するような NIS+ クライアントを構成しません。管理者は、明確にクライアントのネームサービススイッチファイルに DNS を指定する必要があります。DNS によるホスト名の検索については、『Solaris ネーミングの管理』およびこのマニュアルの第 1 章「ネームサービススイッチの設定」を参照してください。


nisclient を実行するための前提条件

nisclient スクリプトを使用するには、次の条件が必要です。

必要な情報

次の情報が必要です。

新しいクライアントマシンを初期設定する方法

  1. DES 認証を使用する場合には、オプションで、Diffie-Hellman キー長を指定します。

    マスターサーバー上で以下を入力します。


    nisauthconf

    クライアントマシン上で nisauthconf コマンドを実行するときは、上記コマンドの出力を引数として使用します。たとえば、マスターサーバー上で nisauthconf を実行すると


    dh640dh-0 des

    と出力される場合には、クライアントマシン上で次のコマンドを入力します。


    nisauthconf dh640dh-0 des
  2. 次のコマンドを入力して、新しいクライアントマシン上で新しいクライアントを初期設定します。

    -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)
  3. 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:
  4. 正しい 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:
  5. Secure RPC パスワード (ネットワークパスワード) がルートのログインパスワードと異なる場合のみ、Secure RPC パスワードを入力します。

    この例では、デフォルトの nisplus を使用します。

    パスワードは画面に表示されません。入力を誤った場合、正しいパスワードを入力するよう要求されます。2 回目も入力を誤った場合、スクリプトが終了し、前回のネットワークサービスが復元されます。この場合、スクリプトを再度実行してください。


    Please enter the login password for root:
  6. このクライアントマシンの 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.
  7. クライアントマシンを再起動します。

    ここで行なった変更は、マシンを再起動すると有効になります。

    以上の手順により、この NIS+ クライアントマシンのユーザーを NIS+ ドメインに追加できるようになりました。

クライアントマシンの追加作成

これまでに説明したクライアントの初期設定手順を、必要な各マシンで繰り返します。ほかのドメインのクライアントを初期設定するには、ドメイン名とマスターサーバー名を適宜変更して、上記の手順を繰り返します。

この章で説明する NIS+ ドメインのサンプルでは、ドメイン doc.com. 内の 4 台のクライアントを初期設定すると想定しています。そして、このうち 2 台のクライアントを非ルート (ルート以外の) NIS+ サーバーとして構成し、3 番目のクライアントを doc.com. ドメインのルートマスターサーバーのルート複製サーバーとして構成します。


注 -

システムをサーバーにするには、システムをどの種類のサーバーにするにしても、事前にシステムを親ドメインのクライアントにしておく必要があります。


NIS+ クライアントユーザーの初期設定

マシンが NIS+ クライアントになったら、そのマシンのユーザーは自分自身を NIS+ ドメインに追加しなければなりません。ユーザーをドメインに追加するということは、Secure RPC パスワードをそのユーザーのログインパスワードに変更することを意味します。実際には、ユーザーのパスワードと Secure RPC パスワードが同じになります。この手順では nisclient(1M) スクリプトを使用します。

nisclient(1M) を実行するための前提条件

nisclient(1M) スクリプトを使用してユーザーを初期設定するには、次の条件が必要です。

必要な情報

次の情報が必要です。

NIS+ ユーザーを初期設定する方法

  1. 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:
  2. Secure RPC パスワード (この例では nisplus) を入力します。

    入力したパスワードは画面に表示されません。


    Please enter the login password for user1:
  3. ユーザーのログインパスワードを入力し、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 互換の設定を必要とするクライアントは、必要なサーバーまたは複製サーバーを使用できなければ、この情報を受信できません。

この例では、マシン client1 がサーバーに変更されます。この手順では、NIS+ スクリプトの代わりに NIS+ コマンド rpc.nisd を使用します。

rpc.nisd を実行するための前提条件

rpc.nisd を実行するには、次の条件が必要です。

必要な情報

サーバーに変換するクライアントのスーパーユーザーのパスワードが必要です。

クライアントを NIS+ サーバーとして構成する方法

クライアントをサーバーとして構成するには、次の手順のどれかを実行します。この手順では、サーバーと同じ名前のディレクトリを作成し、サーバーの初期設定ファイルを作成します。これらは /var/nis に置かれます。


注 -

同じドメイン内のすべてのサーバーは、NIS 互換の設定が同じでなければなりません。たとえば、マスターサーバーが NIS 互換である場合、その複製も NIS 互換でなければなりません。


NIS と互換性のない NIS+ サーバーを構成する方法

    NIS と互換性のないサーバーを構成するには、次のコマンドを入力します。


    client1# rpc.nisd
    

NIS と互換性のある NIS+ サーバーを構成する方法

  1. サーバーの /etc/init.d/rpc ファイルを編集して、文字列 -EMULYP="-Y" を含む行のコメントアウトを解除して有効にします。

    コメントアウトを解除するには、行の先頭から # を削除します。

  2. スーパーユーザーとして、次のように入力します。


    client1# rpc.nisd -Y
    

NIS との互換性と DNS 転送機能を備えた NIS+ サーバーを構成する方法

次の手順を実行して、DNS 転送機能と NIS+ との互換性の両方の機能を備えた NIS+ サーバーを構成します。SunOS 4.x クライアントをサポートするには、両方の機能が必要です。

  1. サーバーの /etc/init.d/rpc ファイルを編集します。文字列 -EMULYP="-Y" を含む行のコメントアウトを解除 (行の先頭から # を削除) して有効にします。

    コメントアウトを解除するには、行の先頭から # を削除します。

  2. 上の行の引用符で囲まれた中に次のように -B を追加します。

    -EMULYP="-Y -B"

  3. 次のコマンドをスーパーユーザーとして入力します。


    client1# rpc.nisd -Y -B
    

    これで、このサーバーはドメインのマスターまたは複製として指定できます。

サーバーの追加作成

これまでのクライアントをサーバーに変更する手順を、必要なクライアントマシンごとに繰り返します。

この章で説明する NIS+ サンプルドメインは、3 台のクライアントをサーバーに変更すると想定しています。そして、サーバーの 1 台をルート複製サーバーに、もう 1 台を新しいサブドメインのマスターに、そして 3 台目を新しいサブドメインのマスターの複製に構成します。

ルート複製サーバーの作成

NIS+ サービスを常に利用可能な状態にしておくため、ルート複製サーバーを少なくとも 1 つは作成しておくことをお勧めします。複製サーバーを作成すると複数のサーバーが存在することになり、要求の処理を分散させることができるため、ネットワーク要求の処理も高速化されます。

パフォーマンス上の理由から、1 つのドメインに多くの複製サーバーを置くことはお勧めできません。ただし、ネットワークが複数のサブネットで構成されている場合、あるいは広域ネットワーク (WAN) でリモートサイトに接続されている場合には、複製サーバーを追加した方がいい場合があります。

最適な複製サーバーの数については、『Solaris ネーミングの管理』を参照してください。

「ルート複製サーバーを作成する方法」では、マシン client1doc.com. ドメインのルート複製サーバーとして構成します。この手順では、NIS+ スクリプトの nisserver を使用します。「NIS+ コマンドによる複製サーバーの構成」で説明しているように NIS+ コマンドを使用して複製サーバーを構成することもできます。

nisserver を実行するための前提条件

nisserver を実行してルート複製サーバーを作成するには、次の条件が必要です。

必要な情報

次の情報が必要です。

ルート複製サーバーを作成する方法

  1. 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) を指定します。

  2. 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)
  3. 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+ サーバーとして構成する方法」を参照してください。


  4. [必要に応じて] 複製サーバーを NIS (YP) 互換モードで稼動させることができるように構成します。

    複製サーバーを NIS 互換モードで稼動させるには、次の手順に従います。

    1. rpc.nisd を終了します。

    2. サーバーの /etc/init.d/rpc ファイルをオープンして、EMULYP-Y に設定されている行のコメントアウトを解除します。

      具体的には、EMULYP 行の先頭の # を削除します。

    3. rpc.nisd を再起動します。

  5. 新たに作成した複製サーバーに名前空間データをロードします。

    これには次の 2 つの方法があります。

    • nisping を実行します。

      nisping を実行すると、マスターサーバーのすべての NIS+ データを複製サーバーに完全に再同期させることができます。しかし、大きな名前空間の場合、処理に長時間かかることがあります。その間、マスターサーバーはビジーになって応答が遅く、また作成した複製サーバーはまだ NIS+ 要求に応答できない状態になることがあります。具体的な手順については、「nisping を使って名前空間データをロードする方法」を参照してください。

    名前空間データのロードが終了すれば、マシン client1 は NIS+ ルート複製サーバーとなります。この新しいルート複製サーバーは、ルートドメインのクライアントからの要求を処理できます。これでドメインで使用可能なサーバーが 2 台となるため、要求を速く処理できます。

    これらの手順に従って、複製サーバーを必要なだけ作ることができます。同じ手順を使ってサブドメインに複製サーバーを作ることもできます。

Multihomed NIS+ 複製サーバーの設定方法

Multihomed NIS+ サーバーを設定する手順は、単一インタフェースサーバーの設定手順と同じです。唯一の相違点は、ローカルの /etc/hosts ファイル、/etc/inet/ipnodesファイルと NIS+ の hosts テーブルおよび ipnodes テーブル内に定義する必要があるインタフェースが、単一インタフェースサーバーよりも多いという点です。ホスト情報を定義したら、nisclientnisserver スクリプトを使用して Multihomed NIS+ サーバーを設定します。


注意 - 注意 -

Multihomed NIS+ サーバーを設定する場合は、サーバーの主体名はシステムのノード名と同じにする必要があります。これは、Secured RPC と nisclient を同時に使用する際の必要条件です。

ノード名と主体名が異なる場合、Secured RPC 認証は適正に動作できず、その結果 NIS+ で問題が発生します。


次に、NIS+ ルートマスター以外のサーバーの設定手順を示します。以下の例では、ルートドメインの複製を作成しています。muitihomed ルートサーバーの設定方法については、「Multihomed NIS+ ルートマスターサーバーの設定方法」を参照してください。

  1. サーバーのホスト情報を 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
  2. ルートマスターサーバー上で、nispopulate または nisaddent のどちらかを使用して、新しいホスト情報を hosts テーブルまたは ipnodes テーブル内にロードします。たとえば、次のように入力します。


    hostA# nispopulate -F -d sun.com hosts
    

    この例では、sun.com は NIS+ ルートドメイン名を表しています。自分の NIS+ ルートドメイン名を指定して nispopulate コマンドを実行してください。

  3. ルートマスターサーバー上で、nisclient スクリプトを使用して新しいクライアントの資格を作成します。たとえば、次のように入力します。


    hostA# nisclient -c -d sun.com hostB
    

    この例では、sun.com は ルートドメイン名を表しています。自分のルートドメイン名を指定して nisclient コマンドを実行してください。

  4. ルートマスター以外のサーバー上で、新しいサーバーがまだ稼動していない場合は、nisclient を使用して新しいサーバーを起動し、このマシンを NIS+ クライアントとして初期化します。たとえば、次のように入力します。


    hostB# nisclient -i -d sun.com
    

    この例では、sun.com は ルートドメイン名を表しています。自分のルートドメイン名を指定して nisclient コマンドを実行してください。

  5. ルートマスター上で、nisserver を使用してルートマスター以外のサーバーを設定します。たとえば、次のように入力します。


    hostA# nisserver -M -d eng.sun.com -h hostB.sun.com.
    

    この例では、eng.sun.com は NIS+ ドメイン名を表し、hostB.sun.com は NIS+ サーバーの完全指定ホスト名を表しています。nisserver コマンドは、自分の NIS+ ドメイン名と NIS+ サーバーの完全指定ホスト名を指定して実行してください。

  6. ルートマスターサーバー上で、nisserver を使用して複製サーバーを設定します。たとえば、次のように入力します。


    hostA# nisserver -R -d sun.com -h hostB.sun.com.
    

    この例では、sun.com は 複製サーバーを表し、hostB.sun.com は NIS+ サーバーの完全指定ホスト名を表しています。nisserver コマンドは、自分の複製サーバー名と NIS+ サーバーの完全指定ホスト名を指定して実行してください。

multihomed NIS+ 複製サーバーの設定が完了したら、このあとの設定手順は、単一インタフェースのサーバーの設定手順とまったく同じです。

サブドメインの作成

この節では、ルート以外の新しいドメイン (サブドメイン) のマスターサーバーの作成方法を説明します。この新しいドメインは doc.com. ドメインのサブドメインとなります。NIS+ の階層構造によって、組織構造に合わせたドメイン構造を作成できます。

この例では、マシン client2sub.doc.com. という新しいドメインのマスターサーバーに変更されます。ここでは NIS+ スクリプトの nisserver を使用します。

nisserver を実行するための前提条件

nisserver を実行して、新しいサブドメインのマスターサーバーを作成するには、次の条件が必要です。

必要な情報

次の情報が必要です。

「新しい非ルートドメインを作成する方法」では、新しいサブドメインを 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 オプションを参照してください。


新しい非ルートドメインを作成する方法

  1. 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) 互換性、およびセキュリティレベルの詳細は、「ルートマスターサーバーを作成する方法」を参照してください。

  2. 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)
  3. 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. 

    これで、マシン client2sales.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 を実行するための前提条件

スクリプト nispopulate を実行して新しいマスターサーバーのテーブルを生成するには、次の条件が必要です。


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:/:

注 -

システム上の /tmp 領域が不足する場合、nispopulate スクリプトは異常終了することがあります。これを防止するには、環境変数 TMPDIR に別のディレクトリを設定します。TMPDIR に有効なディレクトリが設定されていない場合、スクリプトは代わりに /tmp ディレクトリを使用します。


必要な情報

ファイルから生成する場合、次の情報が必要です。

NIS マップから生成する場合、次の情報が必要です。


注 -

NIS ドメインの名前は大文字と小文字を区別しますが、NIS+ ドメインの名前は区別しません。


マスターサーバーテーブルを生成する方法

この手順は、「ルートマスターサーバーのテーブルを生成する方法」の手順と実質的に同じなので、この例では、新しいドメイン (sales.doc.com.) のテーブルを生成するための入力についてだけ説明します。この手順の詳細は、「ルートマスターサーバーのテーブルを生成する方法」を参照してください。


注 -

このスクリプトは、ルートマスターサーバーではなく、新しいドメインのマスターサーバー上で実行しなければなりません。


次のいずれかの方法で、新しいマスターサーバー上にマスターサーバーテーブルを生成します。

実行結果が一度に表示しきれないことがあるので、どちらの方法で行うにしてもスクロール可能なウィンドウを使用してください。

テーブルをファイルから生成する方法

ファイルからマスターサーバーテーブルを生成するには、次のコマンドを入力します。


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 マップから生成する方法

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 を実行するための前提条件

nisserver を実行して複製サーバーを作成するには、次の条件が必要です。

必要な情報

複製サーバーを作成する方法

    複製サーバーを作成するには、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 マップから生成すれば、NIS+ クライアントマシンを初期設定できます。この節では、デフォルト設定の nisclient スクリプトを使用して、新しいドメイン内の NIS+ クライアントを初期設定する方法を説明します。NIS+ クライアントマシンは、NIS+ マスターサーバーとは別のワークステーションです。


注 -

「新しいサブドメインクライアントマシンを初期設定する方法」で使用される -i オプションは、NIS+ クライアントを DNS を必要とするホスト名の解決ができるようには構成しません。DNS を使用する場合には、ネームサービススイッチファイルの中でクライアント用に、DNS を明確に指定しなければなりません。DNS によるホスト名の解決については、「DNS を使用できるようにする」を参照してください。


新しいドメイン内のクライアントを初期設定するには、ルートドメイン内のクライアントの初期設定と同じ手順を使用します。この例では、新しいドメインのクライアントを初期設定するための入力だけを示します。スクリプトの残りの出力については、「新しいクライアントマシンを初期設定する方法」を参照してください。

nisclient を実行するための前提条件

nisclient スクリプトを使用してユーザーを初期設定するには、次の条件が必要です。

必要な情報

次の情報が必要です。

新しいサブドメインクライアントマシンを初期設定する方法

    新しいクライアントマシン上で新しいクライアントを初期設定するには、スーパーユーザーとして次のコマンドを入力します。


    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+ サーバーのホスト名を指定します。

このスクリプトの残りの出力については、「新しいクライアントマシンを初期設定する方法」を参照してください。

サブドメインの NIS+ クライアントユーザーの初期設定

新しいドメイン内のユーザーを初期設定するには、ルートドメイン内のユーザーを初期設定する場合と同じ手順 (nisclient) を使用します。全ユーザーが NIS+ クライアントにならなければなりません。この例では、新しいドメインのユーザーを初期設定するための入力だけを示します。スクリプトの残りの出力については、「NIS+ ユーザーを初期設定する方法」を参照してください。

nisclient(1M) を実行するための前提条件

nisclient スクリプトを使用してユーザーを初期設定するには、次の条件が必要です。

必要な情報

次の情報が必要です。

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+ ユーザーを初期設定する方法」を参照してください。

NIS+ 名前空間サンプルで使用したコマンドのまとめ

名前空間サンプルの作成で使用したコマンドを表 4-4 にまとめます。各コマンドの前にあるプロンプトは、そのコマンドをどのマシンで入力するかを示します。

表 4-4 NIS+ 名前空間サンプルのコマンド行のまとめ

目的 

コマンド行 

/usr/lib/nis を含むように環境パスを設定 (C シェルまたは Bourne シェル)

# 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