NIS マップの情報は、ndbm フォーマットで保存されます。マップファイルのフォーマットについては、ypfiles(4) と ndbm(3C) のマニュアルページに説明されています。
NIS マップは、UNIX の /etc ファイルおよび他の構成ファイルを置換するように設計されているので、名前およびアドレスよりはるかに多くの情報を保存できます。NIS が動作しているネットワーク上では、各 NIS ドメインの NIS マスターサーバーは、照会されるドメイン内の他のマシンの NIS マップセットを保持します。NIS スレーブサーバーは、NIS マスターサーバーのマップのコピーを保持します。NIS クライアントマシンは、マスターサーバーまたはスレーブサーバーから名前空間情報を取得できます。
NIS マップは、本質的には「キー」およびキーに関する情報の 2 列からなるテーブルです。NIS は、キーを検索してクライアントに関する情報を見つけます。各マップでは異なるキーが使われるので、一部の情報はいくつかのマップに保存されます。たとえば、マシン名とアドレスは、hosts.byname と hosts.byaddr という 2 つのマップに保存されます。サーバーがマシンの名前を持っており、そのマシンのアドレスを見つける必要がある場合は、サーバーは hosts.byname マップを調べます。サーバーがマシンのアドレスを持っており、そのマシンの名前を見つける必要がある場合は、サーバーは hosts.byaddr マップを調べます。
NIS Makefile は、インストール時に NIS サーバーとして指定されたマシンの /var/yp ディレクトリに保存されます。このディレクトリで make を実行すると、makedbm が入力ファイルからデフォルトの NIS マップを作成または更新します。
マップは必ずマスターサーバー上で作成してください。スレーブサーバーで作成したマップはマスターサーバーに自動的に格納されません。
Solaris オペレーティング環境では、NIS マップのデフォルトセットが提供されます。 システム管理者は、これらのマップをすべて使用することも一部だけを使用することもできます。また、他のソフトウェア製品のインストール時にシステム管理者が作成または追加したマップもすべて NIS で使用できます。
NIS ドメインのデフォルトのマップは、各サーバーの /var/yp/domainname ディレクトリに入っています。たとえば、test.com ドメインに属しているマップは、各サーバーの /var/yp/test.com ディレクトリにあります。
表 7–3 には、デフォルトの NIS マップ、これらの NIS マップに存在する情報、および NIS 動作時にソフトウェアが対応する管理ファイルを調べているか否かが示されています。
表 7–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 ファイルがある場合には、他のファイルを使用して利用できるデータの他にそれが参照される |
netmasks.byaddr |
netmasks |
IP 送出時に使用するネットワーを含む。キーはアドレス |
networks.byaddr |
networks |
システムに認識されているネットワーク名、および IP アドレスを含む。キーは IP アドレス |
networks.byname |
networks |
networks.byaddr と同じ。ただし、キーはネットワーク名 |
passwd.adjunct. byname |
passwd と shadow |
C2 クライアント用の監査情報と隠蔽されたパスワード情報を含む |
passwd.byname |
passwd と shadow |
パスワード情報を含む。キーはユーザー名 |
passwd.byuid |
passwd と shadow |
passwd.byname と同じ。ただし、キーはユーザー ID |
protocols.byname |
protocols |
システムに認識されているネットワークプロトコルを含む |
protocols.bynumber |
protocols |
protocols.byname と同じ。ただし、キーはプロトコル番号 |
rpc.bynumber |
rpc |
システムに認識されている RPC のプログラム番号と名前を含む。キーは RPC のプログラム番号 |
services.byname |
services |
ネットワークに認識されているインターネットサービスを一覧表示する。キーはポートまたはプロトコル |
services.byservice |
services |
ネットワークに認識されているインターネットサービスを一覧表示する。キーはサービス名 |
ypservers |
なし |
ネットワークに認識されている NIS サーバーを一覧表示する |
新しい ipnodes マップ (ipnodes.byaddr および ipnodes.byname) が、NIS に追加されました。このマップには、IPv4 アドレスと IPv6 アドレスの両方が格納されます。 ipnodes(4) のマニュアルページを参照してください。 NIS クライアントとサーバーは、IPv4 または IPv6 のどちらかの RPC トランスポートを使用して通信することができます。
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) のマニュアルページを参照してください。
「ニックネーム」は、マップのフルネームの別名です。使用可能なマップのニックネーム (たとえば、passwd.byname の場合は passwd) を一覧表示するには、ypcat -x または ypwhich -x と入力してください。
ニックネームは、/var/yp/nicknames ファイルに保存されています。/var/yp/nicknames ファイルには、マップのニックネームとフルネームが 1 つの空白で区切られて入っています。ニックネームのリストは、追加または更新できます。ニックネーム数は現在、500 に制限されています。