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

第 1 章 ネームサービススイッチの設定

この章では、ネームサービススイッチとその構成手順について説明します。

ネームサービススイッチ

ネームサービススイッチは、クライアントワークステーションやアプリケーションのネットワーク情報の入手方法を制御するためのもので、単に「スイッチ」ともいいます。アプリケーションは、このスイッチの内容を基に、どのネームサービスをどの順番で使うかを判断し、名前に関する情報を入手します。スイッチの実体は nsswitch.conf というファイルで、これは各マシン (ワークステーション) の /etc ディレクトリに格納されています。

nsswitch.conf ファイル

各ワークステーションの /etc ディレクトリには nsswitch.conf ファイルがあります。このファイルの各行は、ネットワーク情報の種類 (ホスト、パスワード、グループなど) と、それに対する 1 つ以上の情報源 (NIS+ テーブル、NIS マップ、DNS ホストテーブル、同一ワークステーション上の /etc など) を対応させています。nsswitch.conf ファイルの詳細は、『Solaris ネーミングの管理』を参照してください。

/etc/nsswitch.conf ファイルは、Solaris 7 リリースをインストールすると自動的に作成されます。また次の 3 つの代替テンプレートファイルも作成されます。

これらの 3 つの代替テンプレートファイルには、それぞれネットワーク情報の情報源として NIS+、NIS またはローカルファイルを使用する、標準的なスイッチ構成が設定されています。DNS 用のテンプレートファイルは用意されていませんが、いずれの代替テンプレートファイルも DNS 用に編集して使用できます。詳細は、「DNS を使用できるようにする」を参照してください。Solaris 7 リリースをワークステーションに最初にインストールする際、インストーラはそのワークステーションのデフォルトのネームサービス (NIS+、NIS、またはローカルファイル) を選択します。インストールの途中、選択されたネームサービスに対応するテンプレートファイルが /etc/nsswitch.conf にコピーされます。たとえば、NIS+ を使う場合、インストーラは nsswitch.nisplusnsswitch.conf にコピーします。

インターネットに接続したネットワークの中で、DNS サービスを使ってインターネット上のホストにアクセスできる環境をユーザーに提供したいのであれば、「DNS を使用できるようにする」の説明に従って DNS 転送を可能にする必要があります。

通常の名前空間であれば (DNS の利用に関しては前述のとおり)、nsswitch.conf にコピーされたデフォルトのテンプレートファイルで十分に用が足りるはずです。

NIS+ 用デフォルトスイッチファイル

Solaris 7 リリースで提供される NIS+ 用スイッチファイルは、nsswitch.nisplus です。


例 1-1 デフォルトの nsswitch.nisplus ファイル


#
# /etc/nsswitch.nisplus:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# uses NIS+  (NIS Version 3) in conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
# the following two lines obviate the "+" entry in /etc/passwd and /etc/group.
 
passwd: files nisplus
group: files nisplus
# consult /etc "files" only if nisplus is down. 
hosts: nisplus [NOTFOUND=return] files
#Uncomment the following line, and comment out the above, to use both DNS
#and NIS+. You must also set up the /etc/resolv.conf file for DNS name
#server lookup. See resolv.conf(4).
#hosts: nisplus dns [NOTFOUND=return] files
services: nisplus [NOTFOUND=return] files
networks: nisplus [NOTFOUND=return] files
protocols: nisplus [NOTFOUND=return] files
rpc: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] files
netmasks: nisplus [NOTFOUND=return] files	
bootparams: nisplus [NOTFOUND=return] files
 
publickey: nisplus
netgroup: nisplus
automount: files nisplus
aliases: files nisplus
sendmailvars: files nisplus

NIS 用デフォルトスイッチファイル

Solaris 7 リリースで提供される NIS 用スイッチファイルは、nsswitch.nis です。


例 1-2 デフォルトの nsswitch.nis ファイル


#
# /etc/nsswitch.nis:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# uses NIS (YP) in conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
# the following two lines obviate the "+" entry in /etc/passwd and /etc/group.
passwd: files nis
group: files nis
# consult /etc "files" only if nis is down. 
hosts: nis [NOTFOUND=return] files
networks: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
 
ethers: nis [NOTFOUND=return] files
netmasks: nis [NOTFOUND=return] files	
bootparams: nis [NOTFOUND=return] files
publickey: nis [NOTFOUND=return] files
netgroup: nis
automount: files nis
aliases: files nis
# for efficient getservbyname() avoid nis
services: files nis
sendmailvars: files

ファイル用デフォルトスイッチファイル

Solaris 7 リリースで提供されるローカルファイル用スイッチファイルは nsswitch.files です。


例 1-3 デフォルトの nsswitch.files ファイル


#
# /etc/nsswitch.files:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# does not use any naming service.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
passwd: files
group: files
hosts: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files	
bootparams: files
publickey: files
# At present there isn't a 'files' backend for netgroup; the system will 
# figure it out pretty quickly, and won't use netgroups at all.
 
netgroup: files
automount: files
aliases: files
services: files
sendmailvars: files

構成ファイルの変更

ワークステーションのネームサービスを変更する際は、そのワークステーションのスイッチファイルを新しいネームサービスに対応したものに変更する必要があります。たとえば、ワークステーションのネームサービスを NIS から NIS+ に変更する場合、スイッチファイルを NIS+ に対応したものに変更する必要があります。スイッチファイルを変更するには、対応するテンプレートファイルを nsswitch.conf にコピーします。

NIS+ インストールスクリプトを使って NIS+ をワークステーションにインストールすると、NIS+ テンプレートファイルが自動的に nsswitch.conf にコピーされます。この場合、特にスイッチファイルをカスタマイズしたいというのでなければ、スイッチファイルを明示的に変更する必要はありません。

スイッチファイルを変更する前に、ファイルに列挙されている情報源が正しく設定されていることを確認してください。たとえば、NIS+ 用スイッチファイルに変更するのであれば、ワークステーションには NIS+ サービスへのアクセス権が必要になり、ローカルファイル用スイッチファイルに変更するのであれば、それらのローカルファイルがワークステーション上に正しく設定されている必要があります。

セキュリティ上の留意点

この作業は、スーパーユーザーとして実行しなければなりません。

ネームサービススイッチを設定する

表 1-1 タスクマップ : ネームサービススイッチを設定する
 

タスク 

 

説明 

 

指示の参照先 

 
 

ネームサービススイッチを設定する 

 

NIS+ またはNIS 用の構成ファイルを設定し、ワークステーションをリブートする 

 

「構成ファイルを変更する方法」

 

構成ファイルを変更する方法

スイッチファイルの変更は次の手順で行います。

  1. クライアントにスーパーユーザーとしてログインします。

  2. 使用するネームサービス用のテンプレートファイルを nsswitch.conf にコピーします。

    「NIS+ 用」(NIS+ スクリプトにより自動的にコピーされる)


    client1# cd /etc
    client1# cp nsswitch.nisplus nsswitch.conf
    

    「NIS 用」


    client1# cd /etc
    client1# cp nsswitch.nis nsswitch.conf
    

    「ローカル /etc ファイル用」


    client1# cd /etc
    client1# cp nsswitch.files nsswitch.conf
    
  3. ワークステーションを再起動します。

    nscd ネームサービスキャッシュデーモンはスイッチ情報をキャッシュに書き込みます。また、ライブラリ関数には nsswitch.conf ファイルが変更されてもスイッチ情報を読み直さないものがあります。したがって、ワークステーションを再起動して、nscd とこれらのライブラリ関数が最新スイッチの情報を持つようにしなければなりません。

DNS を使用できるようにする

ここでは、ローカルファイル用または NIS+ 用のネームサービススイッチ構成ファイルを設定して、ローカルファイルまたは NIS+ と共に DNS (Domain Name System) を使用できるようにする方法を説明します。NIS には DNS を参照する機能がもともと組み込まれているので、NIS を使用しているマシンではスイッチファイルの hosts 行に DNS のためのエントリを追加する必要はなく、追加すべきでもありません。ここで説明する手順は、/etc のローカルファイルか NIS+ を使用するマシンにだけ適用されます。/etc のローカルファイルまたは NIS+ を使っている場合の手順を次に示します。

前提条件

DNS を使用するマシンでは /etc/resolv.conf を正しく構成する必要があります。詳しくは、「リゾルバ」 を参照してください。

セキュリティ上の留意点

この作業は、スーパーユーザーとして実行しなければなりません。

DNS を使用できるようにする方法 - タスクマップ

表 1-2 DNS を使用できるようにする方法
 

タスク 

 

説明 

 

指示の参照先 

 
 

DNS を使用できるようにする方法 

 

/etc/nsswitch.conf ファイルを修正して、NIS+ クライアントが DNS を使用できるようにする

 

「NIS+ クライアントで DNS を使用できるようにする方法」

 

NIS+ クライアントで DNS を使用できるようにする方法

  1. スーパーユーザーとしてログインします。

  2. /etc/nsswitch.conf ファイルをオープンします。

  3. ホスト情報のソースとして DNS を指定します。

    DNS は、ホスト情報の情報源として、「他の情報源」と共に使用できます。/etc/nsswitch.conf hosts 行を次のいずれかのように変更して、DNS をホスト情報の情報源とすることを指定します。


    hosts: files dns

    または


    hosts: nisplus dns [NOTFOUND=return] files

    または


    hosts: dns nisplus [NOTFOUND=return] files

    NIS クライアントの場合は、上記の指定をしないでください。これは、名前を見付けることができない場合に、2 度 DNS から検索することになるからです。

  4. /etc/nsswitch.conf ファイルを保存し、ワークステーションを再起動します。

    nscd デーモンは、その起動時にスイッチ情報を読み込み、キャッシュに書き込むため、ここでワークステーションを再起動しなければなりません。

+/- 構文との互換性を確保する

ここでは、ネームサービスとして主に NIS または NIS+ を使用する場合に、/etc/passwd/etc/shadow/etc/group の各ファイルで使用される +/- 構文との互換性を確保する方法について説明します。

+/- 構文との互換性を追加する - タスクマップ

表 1-3 +/- 構文との互換性を追加する
 

タスク 

 

説明 

 

指示の参照先 

 
 

+/- 構文との互換性を追加する 

 

/etc/passwd/etc/shadow、および /etc/group ファイルを修正して、+/- 構文との DNS の互換性を追加する

 

「+/- 構文との互換性を追加する方法」

 
       

セキュリティ上の留意点

この作業は、スーパーユーザーとして実行しなければなりません。


注 -

NIS 互換性モードで実行されている NIS+ サーバーをサーバーとするクライアントマシン上で作業しているユーザーは、netgroup テーブルに対して ypcat を実行できません。実行した場合、エントリがあってもテーブルが空の場合と同じ結果となります。


+/- 構文との互換性を追加する方法

  1. スーパーユーザーとしてログインします。

  2. /etc/nsswitch.conf ファイルをオープンします。

  3. passwd と group の情報源を compat に変更します。

    • NIS を使う場合は次のように入力します。


      passwd: compat
      group: compat
    • NIS+ を使う場合は次のように入力します。


      passwd: compat
      passwd_compat: nisplus
      group: compat
      group_compat: nisplus

    これにより Solaris 1.x リリースと同じ構文を使用できます。ファイル内の +/- エントリに従って、/etc と NIS マップ (または NIS+ テーブル) を検索します。

  4. + または + netgroup/etc/passwd/etc/shadow/etc/group の各ファイルに追加します。


    注意 - 注意 -

    + または + netgroup のエントリを /etc/shadow および /etc/passwd に追加しないと、ローカルファイルに登録されていないユーザーは以後ログインできなくなります。


  5. /etc/nsswitch.conf ファイルを保存し、ワークステーションを再起動します。

    nscd ネームサービスキャッシュデーモンはスイッチ情報をキャッシュに書き込みます。また、ライブラリ関数には nsswitch.conf ファイルが変更されてもスイッチ情報を読み直さないものがあります。したがって、ワークステーションを再起動して、nscd とこれらのライブラリ関数が最新スイッチの情報を持つようにしなければなりません。