Solaris ネーミングの管理

NIS の要素

NIS サービスは、以下の要素から構成されています。

NIS ドメイン

NIS「ドメイン」は、共通な一群の NIS マップを共有するマシンの集合です。各ドメインはドメイン名を持っており、共通な一群の NIS マップを共有する各マシンは指定されたドメインに属します。ドメイン名は、大文字と小文字を区別します。

どのマシンも指定されたドメインに属することができます。ただしこれは、そのドメインのマップに対するサーバーが同一ネットワーク上に存在する場合に限ります。Solaris 2.x を動作しているマシンの場合はサーバーが同一サブネット上に存在する必要はありませんが、先行する NIS インプリメンテーションでは 1 つのサーバーが NIS が使用されている各サブネットに存在している必要がありました。NIS クライアントマシンはドメイン名を取得し、NIS サーバーにブートプロセスの一部としてバインドされます。

NIS デーモン

NIS サービスは、表 18-1 に示されている 5 つのデーモンで提供されます。

表 18-1 NIS デーモン

デーモン 

機能 

ypserv

サーバープロセス 

ypbind

バインドプロセス 

ypxfr

高速マップ転送 

rpc.yppasswdd

NIS パスワード更新デーモン 

rpc.ypupdated

他のマップ (publickey など) を更新します

NIS ユーティリティ

NIS サービスは、表 18-2 に示されている 9 つのユーティリティでサポートされています。

表 18-2 NIS ユーティリティ

ユーティリティ 

機能 

makedbm

NIS マップの dbm ファイルを作成する

ypcat

マップのデータを一覧表示する 

ypinit

NIS データベースの作成、インストール、および NIS クライアントの ypservers リストの初期化を行う

yppmatch

マップの特定エントリを検索する 

yppoll

サーバーからマップ順序番号を取得する 

yppush

データを NIS マスターサーバーから NIS スレーブサーバーに反映させる 

ypset

特定サーバーにバインドを設定する 

ypwhich

NIS サーバー名およびニックネーム変換テーブルを表示する 

ypxfr

NIS マスターサーバーから NIS スレーブサーバーにデータを転送する 

NIS マップ

NIS は、マップと呼ばれている一群のファイルに情報を保存します。

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

NIS マップは、Solaris データベースのインプリメンテーションの 1 つのタイプです。他のタイプはこのタイプとは必ずしも重複しておらず、一般に /etc ディレクトリ、DNS リソースレコード (RR) 、NIS+ テーブルに存在するファイルです。

NIS マップの概要

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

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

NIS Makefile は、インストール時に NIS サーバーとして指定されたマシンの /var/yp ディレクトリに保存されます。このディレクトリで make を実行すると、makedbm が入力ファイルからデフォルトの NIS マップを作成または更新します。このプロセスを使って NIS 名前空間を初期設定する方法については、『Solaris ネーミングの設定と構成』を参照してください。


注 -

スレーブサーバー上でマップを作成しないでください。マップを作成する場合は、必ずマスターサーバー上で make を実行してください。


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

デフォルトの NIS マップ

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

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

表 18-3 NIS マップに関する説明

マップ名 

対応する NIS 管理ファイル 

説明 

bootparams

bootparams

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

ethers.byaddr

ethers

マシン名と Ethernet アドレスを含む。マップのキーは、Ethernet アドレス 

ethers.byname

ethers

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

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 ファイルが使用可能な場合は、他のファイルの使用可能データーに加えて、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

protocols.byname

protocols

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

protocols.bynumber

protocols

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

rpc.bynumber

rpc

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

services.byname

services

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

services.byservice

services

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

ypservers

N/A 

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

NIS マップの使用

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

たとえば、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 の詳細は、ypwhich(1) のマニュアルページを参照してください。

NIS マップのニックネーム

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

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

NIS 関連コマンドについてのまとめ

NIS サービスには、特殊なデーモン、システムプログラム、コマンドが含まれています。これらのコマンドについては、表 18-4 にまとめられています。これらの各コマンドの使い方の詳細は、それぞれ該当するマニュアルページを参照してください。

表 18-4 NIS コマンドについてのまとめ

コマンド 

説明 

ypserv

NIS クライアントが要求する NIS マップの情報を提供します。ypserv は、完全な一群のマップが存在する NIS サーバー上で動作するデーモン。NIS サービスが機能するには、少なくとも 1 つの ypserv デーモンがネットワークに存在する必要がある

ypbind

クライアントに NIS サーバーバインド情報を提供する。ypbind は、要求元クライアントのドメイン内のマップにサービスを提供する ypserv プロセスを見つけてバインドを行う。ypbind はすべてのサーバーおよびクライアント上で実行される必要がある

ypinit

自動的に入力ファイルから NIS サーバーのマップを作成する。ypinitはまた、クライアント上に /var/yp/binding/domain/ypservers 初期ファイルを作成する際にも使用される。NIS マスターサーバーおよび NIS スレーブサーバーを初めて設定する場合は、ypinit を使用する

make

Makefile を読み込むことで NIS マップを更新する (make/var/yp ディレクトリで実行した場合)。make を使うと、入力ファイルに基づいてすべてのマップを更新したり、個々のマップを更新したりできる。NIS の make の機能については、ypmake(1M) のマニュアルページで説明されている

makedbm

makedbm は入力ファイルを取得し、これを dbm.dir および dbm.pag ファイルに変換する (これらのファイルは、NIS がマップとして使用できる有効な dbm ファイル)。また、makedbm -u と入力すると、マップを分解できる。したがって、NIS 管理者は、マップを構成するキーと値のペアを参照できる

ypxfr

NIS 自体を転送媒体として使い、NIS マップをリモートサーバーから /var/yp/domain ローカルディレクトリに取り込む。NIS 管理者は ypxfr を対話形式で実行したり、crontab ファイルから定期的に実行したりできる。また、ypxfrypserv によって呼び出されると、転送が開始される

ypxfrd

ypxfr リクエスト (一般にスレーブサーバーで発生する) に対してマップ転送サービスを提供する。ypxfr は、マスターサーバー上でだけ動作する

yppush

NIS マップの新バージョンを NIS マスターサーバーからそのスレーブにコピーする。yppush の実行は、NIS マスターサーバー上で行う

ypset

指定された NIS サーバーにバインドするように ypbind プロセスに要求する。ypset は、セキュリティの関係上、通常のオペレーションで気軽に使用できるようには設計されていない。したがって、ypset はできる限り使用しない。ypbind プロセスの ypset および ypsetme オプションについては、ypset(1M) および ypbind(1M) のマニュアルページを参照

yppoll

指定されたサーバー上で NIS マップのどのバージョンが動作しているかを通知する。yppoll はまた、NIS マップのマスターサーバーを一覧表示する

ypcat

NIS マップの内容を表示する 

ypmatch

NIS マップ内の指定された 1 つ以上のキーの値をプリントする。NIS 管理者は、NIS サーバーマップのバージョンを指定することはできない 

ypwhich

現在どの NIS サーバーをクライアントが使用して NIS サービスを取得しているかを表示する。また、-m mapname オプションを指定して起動した場合は、どの NIS サーバーが各マップのマスターサーバーかが表示される。-m だけを指定した場合は、使用可能なすべてのマップ名、およびこれらのマップのマスターサーバーが表示される