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

パート I ネームサービスの設定

Part I では、nsswitch.conf を使用して、複数の異なるネームサービスを同時に使用する方法について説明します。

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

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

ネームサービススイッチ

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

nsswitch.conf ファイル

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

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

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

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

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

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

Solaris 2.6 リリースで提供される 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 
bootparams: nisplus [NOTFOUND=return] files
publickey: nisplus 
netgroup:nisplus 
automount: files nisplus 
aliases: files nisplus 
sendmailvars: files nisplus

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

Solaris 2.6 リリースで提供される 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 2.6 リリースで提供されるローカルファイル用スイッチファイルは 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. ワークステーションにスーパーユーザーとしてログインします。

  2. nsswitch.conf に代替テンプレートファイルをコピーします。

  3. ワークステーションを再起動します。(これは、スイッチ情報は nscd にキャッシュされるからです。nscd は、起動時にだけスイッチ情報を読み込みます。)

セキュリティ上の留意点

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

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

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

  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+ を使っている場合の手順を次に示します。

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

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

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

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

前提条件

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

セキュリティ上の留意点

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

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. スーパーユーザーとしてログインします。

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

  3. passwdgroup の情報源を compat に変更します。

  4. + または + netgroup/etc/passwd/etc/shadow および /etc/group に追加します。

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

セキュリティ上の留意点

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


注 -

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


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

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

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

  3. passwdgroup の情報源を 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 とこれらのライブラリ関数が最新スイッチの情報を持つようにしなければなりません。