NIS ネームサービスは、次の要素から構成されています。
NIS ドメインは、NIS マップの共通のセットを共有するホストの集まりです。各ドメインにはドメイン名があり、マップの共通のセットを共有する各マシンがそのドメインに属しています。
NIS ドメインと DNS ドメインは、必ずしも同じではありません。一部の環境では、NIS ドメインは、企業全体にわたるネットワークサブネット管理レイアウトに基づいて定義されます。DNS 名と DNS ドメインは、インターネットの DNS ネーミング標準および階層によって定義されます。2 つのネームドメインネームシステムは、同じになるように構成される場合も、されない場合もあります。2 つのサービスのドメイン名は個別に制御されるため、異なった方法で構成される可能性があります。
ある特定のドメインのマップ用のサーバーが同じネットワークまたはサブネット内に存在するかぎり、どのホストもそのドメインに属することができます。NIS ドメインの検索では、リモート手続き呼び出し (RPC) が使用されます。そのため、NIS では、すべてのクライアントと、それらのクライアントに直接サービスを提供するすべてのサーバーマシンが同じアクセス可能なサブネット上に存在する必要があります。各管理サブネットを個別の (企業全体にわたる DNS ドメインとは異なる) NIS ドメインとして、ただし、共通のマスターマシンから管理された共通データベースを使用して管理することは、珍しいことではありません。svc:/network/nis/domain SMF サービスを使用して、NIS ドメイン名およびすべての共有された NIS 構成情報を管理できます。
NIS サービスは SMF によって管理されます。このサービスに関する有効化、無効化、再起動などの管理アクションは svcadm コマンドを使用して実行できます。SMF の概要については、Oracle Solaris 11.3 でのシステムサービスの管理 の 第 1 章, サービス管理機能の概要を参照してください。また、詳細については svcadm(1M) および svcs(1) のマニュアルページも参照してください。次の表では、NIS サービスを提供するデーモンについて説明します。
|
次の表では、NIS サービスをサポートするコマンドについて説明します。
|
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) との間のパスワード有効期限情報の読み取りと書き込みを行うために使用する情報が含まれています。パスワード有効期限を使用していない場合は、ageing.byname をマッピングファイルからコメントアウトできます。NIS から LDAP への移行の詳細については、Oracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: LDAP の 第 8 章, NIS+ から LDAP への移行を参照してください。
NIS を使用すると、ネットワークデータベースの更新が /etc ファイルシステムを使用した場合よりはるかに簡単になります。ネットワーク環境を変更するたびに、すべてのマシン上で /etc 管理ファイルを変更する必要はなくなります。
ただし、NIS では、/etc ファイルで提供される以上のセキュリティーは追加されません。ネットワークデータベースへのアクセスの制限、SSL を使用したネットワーク経由での検索結果の送信、Kerberos でセキュリティー保護された検索などのより高度な機能の使用といった、追加のセキュリティーが必要な場合は、LDAP ネームサービスを使用してください。
たとえば、NIS を実行しているネットワークに新しいユーザーを追加する場合は、マスターサーバー内の入力ファイルを更新し、make コマンドを実行するだけで済みます。このコマンドは、passwd.byname および passwd.byuid マップを自動的に更新します。次に、これらのマップはスレーブサーバーに転送され、NIS ドメインのクライアントとそのプログラムのすべてで使用できるようになります。クライアントマシンまたはアプリケーションがユーザー名または UID を使用して情報をリクエストすると、NIS サーバーは必要に応じて passwd.byname または passwd.byuid マップを参照し、リクエストされた情報をクライアントに送信します。
ypcat コマンドを使用して、マップ内の値を表示できます。
% ypcat mapname
mapname は、調べたいマップ名またはその「ニックネーム」です。ypservers の場合のように、マップが鍵のみで構成されている場合は、ypcat –k を使用します。ypcat -k と入力しない場合は、空白行が出力されます。ypcat コマンドオプションの詳細は、ypcat(1) のマニュアルページを参照してください。
ypwhich コマンドを使用して、どのサーバーが特定のマップのマスターであるかを判定できます。
% ypwhich -m mapname
ここで、mapname は、マスターを検索するマップの名前またはニックネームです。ypwhich コマンドの出力には、マスターサーバーの名前が表示されます。詳細は、ypwhich(1) のマニュアルページを参照してください。
ニックネームは、passwd.byname に対する passwd などの、完全なマップ名に対する別名です。マップの使用可能なニックネームの一覧を取得するには、ypcat –x または ypwhich –x を入力します。
ニックネームは、/var/yp/nicknames ファイル (マップのニックネームのあとにスペースで区切られてマップの完全指定名が含まれる) 内に格納されます。このファイルは変更したり、更新したりできます。ニックネーム数は現在、500 に制限されています。