Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

NIS のマップ

NIS マップの情報は、ndbm フォーマットで保存されます。マップファイルのフォーマットについては、ypfiles(4)ndbm(3C) のマニュアルページで説明しています。

NIS マップは、UNIX の /etc ファイルおよびほかの構成ファイルを置換するように設計されているので、名前およびアドレスよりはるかに多くの情報を保存できます。NIS が動作しているネットワーク上では、各 NIS ドメインの NIS マスターサーバーは、照会されるドメイン内のほかのマシンの NIS マップセットを保持します。NIS スレーブサーバーは、NIS マスターサーバーのマップのコピーを保持します。NIS クライアントマシンは、マスターサーバーまたはスレーブサーバーから名前空間情報を取得できます。

NIS マップは、本質的には 2 つの列からなるテーブルです。1 つの列は「キー」であり、もう 1 つの列はキーに関連する情報です。NIS は、キーを検索してクライアントに関する情報を見つけます。各マップでは異なるキーが使われるので、一部の情報はいくつかのマップに保存されます。たとえば、マシン名とアドレスは、 hosts.byname および hosts.byaddr という 2 つのマップに保存されます。サーバーがマシンの名前を持っており、そのマシンのアドレスを見つける必要がある場合は、サーバーは hosts.byname マップを調べます。サーバーがマシンのアドレスを持っており、そのマシンの名前を見つける必要がある場合は、サーバーは hosts.byaddr マップを調べます。

NIS Makefile は、インストール時に NIS サーバーとして指定されたマシンの /var/yp ディレクトリに保存されます。このディレクトリで make を実行すると、makedbm が入力ファイルからデフォルトの NIS マップを作成または更新します。


注 –

マップは必ずマスターサーバー上で作成してください。スレーブサーバーで作成したマップはマスターサーバーに自動的に格納されません。


デフォルトの NIS マップ

Solaris システムには、NIS マップのデフォルトセットが提供されています。システム管理者は、これらのマップをすべて使用することも一部だけを使用することもできます。また、ほかのソフトウェア製品のインストール時にシステム管理者が作成または追加したマップもすべて NIS で使用できます。

NIS ドメインのデフォルトのマップは、各サーバーの /var/yp/domainname ディレクトリに入っています。たとえば、test.com ドメインに属しているマップは、各サーバーの /var/yp/test.com ディレクトリにあります。

表 4–3 には、デフォルトの NIS マップ、これらの NIS マップに存在する情報、および NIS 動作時にソフトウェアが対応する管理ファイルを調べているか否かが示されています。

表 4–3 NIS マップに関する説明

マップ名 

対応する NIS 管理ファイル 

説明 

audit_user

audit_user

ユーザー監査の事前選択データを含みます。 

auth_attr

auth_attr

承認名と説明を含みます。 

bootparams

bootparams

ブート時にクライアントが必要とするファイルのパス名 (ルート、スワップ、その他) を含みます。 

ethers.byaddr

ethers

マシン名と Ethernet アドレスを含みます。Ethernet アドレスはマップ内のキーです。 

ethers.byname

ethers

ethers.byaddr と同じです。ただしキーは、Ethernet アドレスではなくマシン名です。

exec_attr

exec_attr

プロファイルの実行属性を含みます。 

group.bygid

group

グループセキュリティー情報を含みます。キーはグループ ID です。 

group.byname

group

グループセキュリティー情報を含みます。キーはグループ名です。 

hosts.byaddr

hosts

マシン名と IP アドレスを含みます。キーは IP アドレスです。 

hosts.byname

hosts

マシン名と IP アドレスを含みます。キーはマシン (ホスト) 名です。 

mail.aliases

aliases

エイリアスとメールアドレスを含みます。キーはエイリアスです。 

mail.byaddr

aliases

メールアドレスとエイリアスを含みます。キーはメールアドレスです。 

netgroup.byhost

netgroup

グループ名、ユーザー名、マシン名を含みます。キーはマシン名です。 

netgroup.byuser

netgroup

netgroup.byhost と同じです。ただし、キーはユーザー名です。

netgroup

netgroup

netgroup.byhost と同じです。ただし、キーはグループ名です。

netid.byname

passwd, hosts

group

UNIX スタイルの認証に使用されます。マシン名とメールアドレスを含みます (ドメイン名も含む)。netid ファイルがある場合には、ほかのファイルを使用して利用できるデータのほかにそれが参照されます。

netmasks.byaddr

netmasks

IP 送出時に使用するネットワークマスクを含みます。キーはアドレスです。 

networks.byaddr

networks

システムに認識されているネットワーク名、および IP アドレスを含みます。キーは IP アドレスです。 

networks.byname

networks

networks.byaddr と同じです。ただし、キーはネットワーク名です。

passwd.adjunct.byname

passwdshadow

C2 クライアント用の監査情報と隠蔽されたパスワード情報を含みます。 

passwd.byname

passwdshadow

パスワード情報を含みます。キーはユーザー名です。 

passwd.byuid

passwdshadow

passwd.byname と同じです。ただし、キーはユーザー ID です。

prof_attr

prof_attr

実行プロファイルの属性を含みます。 

protocols.byname

protocols

システムに認識されているネットワークプロトコルを含みます。 

protocols.bynumber

protocols

protocols.byname と同じです。ただし、キーはプロトコル番号です。

rpc.bynumber

rpc

システムに認識されている RPC のプログラム番号と名前を含みます。キーは RPC のプログラム番号です。 

services.byname

services

ネットワークに認識されているインターネットサービスを一覧表示します。キーはポートまたはプロトコルです。 

services.byservice

services

ネットワークに認識されているインターネットサービスを一覧表示します。キーはサービス名です。 

user_attr

user_attr

ユーザーと役割に関する拡張属性を含みます。 

ypservers

なし 

ネットワークに認識されている NIS サーバーを一覧表示します。 

新しい ipnodes マップ (ipnodes.byaddr および ipnodes.byname) が、NIS に追加されました。このマップには、IPv4 アドレスと IPv6 アドレスの両方が格納されます。


注 –

Solaris 10 8/07 リリース以降、Solaris OS には 2 つの別個の hosts ファイルは存在しません。/etc/inet/hosts ファイルが唯一の hosts ファイルであり、この中に IPv4 と IPv6 の両方のエントリが含まれます。常に同期させる必要がある 2 つの hosts ファイル内の IPv4 エントリを維持管理する必要はありません。/etc/inet/ipnodes ファイルは、下位互換性のために、/etc/inet/hosts ファイルへの同名のシンボリックリンクに置き換えられています。

詳細は、hosts(4) のマニュアルページを参照してください。

NIS クライアントとサーバーは、IPv4 または IPv6 のどちらかの RPC トランスポートを使用して通信することができます。


ageing.byname マッピングには、yppasswdd によって使用される情報が含まれています。NIS から LDAP への移行時に、DIT とのパスワード有効期限情報の読み取りおよび書き込みのために使用されます。パスワードの有効期限を使用しない場合は、この情報をマッピングファイルからコメントアウトします。NIS から LDAP への移行の詳細については、第 15 章NIS から LDAP への移行 (概要と手順)を参照してください。

NIS マップの使用

NIS を使うと、/etc ファイルシステムを使った場合に比べ、ネットワークデータベースの更新がはるかに簡単になります。/etc ファイルシステムではネットワーク環境を更新するたびに各マシンの管理 /etc ファイルを変更する必要がありましたが、NIS ではこのような操作を行う必要はありません。

たとえば、NIS が動作しているネットワークに新しいマシンを追加する場合に必要なのは、マスターサーバーの入力ファイルを更新し、make を実行することだけです。これで、hosts.byname および hosts.byaddr マップが自動的に更新されます。次に、これらのマップはすべてのスレーブサーバーに転送され、ドメインのすべてのクライアントマシン、およびこれらのクライアントマシンのプログラムはこれらのマップを使用することが可能になります。クライアントマシンまたはアプリケーションがマシン名またはアドレスを要求すると、NIS サーバーは必要に応じて hosts.byname または hosts.byaddr マップを参照し、要求された情報をクライアントに送信します。

ypcat コマンドを使うと、マップの値を表示できます。ypcat の基本的な使用形式は、次のとおりです。


% ypcat mapname

mapname は、調べたいマップ名またはその「ニックネーム」です。ypservers の場合のようにマップがキーだけで構成されている場合は、ypcat -k と入力してください。ypcat -k と入力しない場合は、空白行が出力されます。ypcat のほかのオプションについては、ypcat(1) のマニュアルページに説明されています。

ypwhich コマンドを使うと、どのサーバーが特定のマップのマスターサーバーなのかを判定できます。次のように入力します。


% ypwhich -m mapname

mapname は、検索するマスターサーバーのマップ名またはニックネームです。mapname を入力すると、マスターサーバー名が表示されます。詳細については、ypwhich(1) のマニュアルページを参照してください。

NIS マップのニックネーム

「ニックネーム」は、マップのフルネームのエイリアスです。使用可能なマップのニックネーム (たとえば、passwd.byname の場合は passwd) を一覧表示するには、ypcat -x または ypwhich -x と入力してください。

ニックネームは、/var/yp/nicknames ファイルに保存されています。このファイルには、マップの完全指定名のあとに、マップのニックネームが空白で区切られて含まれています。ニックネームのリストは、追加または更新できます。ニックネーム数は現在、500 に制限されています。