NIS マップ内の情報は、ndbm 形式で格納されます。マップファイルの形式については、ypfiles(4) および ndbm(3C) のマニュアルページで説明されています。
NIS マップは、UNIX の /etc データやその他の構成ファイル (passwd、shadow、group など) へのアクセスを、システムのネットワーク間で同じデータを共有できるように拡張します。これらのファイルの共有によって、これらのデータファイルの管理上の更新や管理が簡略化されます。NIS は、最小の労力で配備できます。ただし、より大規模な企業、特にセキュリティー要件を満たす必要のある企業は、代わりに LDAP ネームサービスの使用を考慮するべきです。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 マップを作成するか、または変更します。
Oracle Solaris システムには、NIS マップのデフォルトセットが提供されています。システム管理者は、これらのマップをすべて使用することも一部だけを使用することもできます。また、ほかのソフトウェア製品のインストール時にシステム管理者が作成または追加したマップもすべて NIS で使用できます。
NIS ドメインのデフォルトのマップは、各サーバーの /var/yp/domain–name ディレクトリ内にあります。たとえば、test.com ドメインに属しているマップは、各サーバーの /var/yp/test.com ディレクトリにあります。
次の表では、デフォルトの NIS マップについて説明し、各マップに対応するソースファイル名の一覧を示しています。
|
ageing.byname マッピングには、NIS から LDAP への移行が実装されたときに、yppasswdd デーモンがディレクトリ情報ツリー (DIT) との間のパスワード有効期限情報の読み取りと書き込みを行うために使用する情報が含まれています。パスワードの有効期限を使用しない場合は、この情報をマッピングファイルからコメントアウトします。NIS から LDAP への移行の詳細については、Oracle Solaris 11.2 ディレクトリサービスとネームサービスでの作業: LDAP の第 8 章NIS+ から LDAP への移行を参照してください。
NIS を使用すると、ネットワークデータベースの更新が /etc ファイルシステムを使用した場合よりはるかに簡単になります。ネットワーク環境を変更するたびに、すべてのマシン上で /etc 管理ファイルを変更する必要はなくなります。
ただし、NIS では、/etc ファイルで提供される以上のセキュリティーは追加されません。ネットワークデータベースへのアクセスの制限、SSL を使用したネットワーク経由での検索結果の送信、Kerberos でセキュリティー保護された検索などのより高度な機能の使用といった、追加のセキュリティーが必要な場合は、代わりに LDAP ネームサービスを使用するようにしてください。
たとえば、NIS を実行しているネットワークに新しいユーザーを追加する場合は、マスターサーバー内の入力ファイルを更新し、make コマンドを実行するだけで済みます。このコマンドは、passwd.byname および passwd.byuid マップを自動的に更新します。次に、これらのマップはスレーブサーバーに転送され、ドメインのクライアントマシンとそのプログラムのすべてで使用できるようになります。クライアントマシンまたはアプリケーションがユーザー名または UID を使用して情報をリクエストすると、NIS サーバーは必要に応じて passwd.byname または passwd.byuid マップを参照し、リクエストされた情報をクライアントに送信します。
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 ファイル (マップのニックネームのあとにスペースで区切られてマップの完全指定名が含まれる) 内に格納されます。このリストは、追加または変更が可能です。ニックネーム数は現在、500 に制限されています。