NIS ネームサービスは、次の要素から構成されています。
ドメイン (「NIS ドメイン」を参照)
デーモン (「NIS デーモン」を参照)
ユーティリティー (「NIS ユーティリティー」を参照)
マップ (「NIS のマップ」を参照)
NIS コマンドセット (「NIS 関連コマンド」を参照)
NIS「ドメイン」は、共通の NIS マップセットを共有しているマシンの集合です。各ドメインにはドメイン名が指定されており、共通の NIS マップセットを共有している各マシンがそのドメインに属しています。
どのマシンも指定されたドメインに属することができます。ただしこれは、そのドメインのマップに対するサーバーが同一ネットワーク上に存在する場合に限ります。NIS クライアントマシンは、ブートプロセス中にドメイン名を取得して、NIS サーバーにバインドします。
NIS サービスは、表 4–1 に示す 5 つのデーモンで提供されます。NIS サービスはサービス管理機能によって管理されます。このサービスに関する有効化、無効化、再起動などの管理アクションは svcadm コマンドを使用して実行できます。SMF の概要については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。また、詳細については、svcadm(1M) および svcs(1) のマニュアルページを参照してください。
表 4–1 NIS デーモン
デーモン |
機能 |
---|---|
サーバープロセス |
|
バインドプロセス |
|
高速マップ転送 |
|
NIS パスワード更新デーモン ** 下の注を参照 ** |
|
ほかのマップ (publickey など) を更新する |
rpc.yppasswdd は、r で始まるすべてのシェルを制限付きとみなします。たとえば、/bin/rksh で作業しているユーザーはそのシェルを別のシェルに変更できません。r で始まるシェルを持っているが、そのような制約を受けたくない場合は、第 7 章NIS のトラブルシューティングの対処方法を参照してください。
NIS サービスは、表 4–2 に示す 9 つのユーティリティーでサポートされています。
表 4–2 NIS ユーティリティー
ユーティリティー |
機能 |
---|---|
NIS マップの dbm ファイルを作成します |
|
マップのデータを一覧表示します |
|
NIS データベースの作成、インストール、および NIS クライアントの ypservers リストの初期化を行います |
|
マップの特定エントリを検索します |
|
サーバーからマップ順序番号を取得します |
|
データを NIS マスターサーバーから NIS スレーブサーバーに伝播します |
|
特定サーバーにバインドを設定します |
|
NIS サーバー名およびニックネーム変換テーブルを表示します |
|
NIS マスターサーバーから 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 マップを作成または更新します。
マップは必ずマスターサーバー上で作成してください。スレーブサーバーで作成したマップはマスターサーバーに自動的に格納されません。
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 |
passwd と shadow |
C2 クライアント用の監査情報と隠蔽されたパスワード情報を含みます。 |
passwd.byname |
passwd と shadow |
パスワード情報を含みます。キーはユーザー名です。 |
passwd.byuid |
passwd と shadow |
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 を使うと、/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 ファイルに保存されています。このファイルには、マップの完全指定名のあとに、マップのニックネームが空白で区切られて含まれています。ニックネームのリストは、追加または更新できます。ニックネーム数は現在、500 に制限されています。
NIS サービスには、特殊なデーモン、システムプログラム、コマンドが含まれています。これらのコマンドについては次の表にまとめてあります。
表 4–4 NIS コマンドについてのまとめ
コマンド |
説明 |
---|---|
NIS クライアントが要求する NIS マップの情報を提供します。ypserv は、完全なマップセットを備えた NIS サーバー上で動作するデーモンです。NIS サービスが機能するには、少なくとも 1 つの ypserv デーモンがネットワークに存在する必要があります。 |
|
クライアントに NIS サーバーバインド情報を提供します。ypbind は、要求元クライアントのドメイン内のマップにサービスを提供する ypserv プロセスを見つけてバインドを行います。ypbind はすべてのサーバーとクライアント上で実行される必要があります。 |
|
自動的に入力ファイルから NIS サーバーのマップを作成します。ypinit はまた、クライアント上に /var/yp/binding/ domain/ypservers 初期ファイルを作成する際にも使用されます。NIS マスターサーバーおよび NIS スレーブサーバーを初めて設定する場合は、ypinit を使用します。 |
|
Makefile を読み込むことで NIS マップを更新します (make を /var/yp ディレクトリで実行した場合)。make を使うと、入力ファイルに基づいてすべてのマップを更新したり、個々のマップを更新したりできます。NIS の make の機能については、ypmake(1M) のマニュアルページに説明されています。 |
|
makedbm は入力ファイルを取得し、これを dbm.dir および dbm.pag ファイルに変換します (これらのファイルは、NIS がマップとして使用できる有効な dbm ファイル)。また、makedbm -u と入力すると、マップを分解できるため、システム管理者はマップを構成するキーと値のペアを参照できます。 |
|
NIS 自体を転送媒体として使い、NIS マップを遠隔サーバーから /var/yp/domain ローカルディレクトリに取り込みます。システム管理者は ypxfr を対話形式で実行したり、crontab ファイルから定期的に実行したりできます。また、ypxfr が ypserv によって呼び出されると、転送が開始されます。 |
|
ypxfr 要求 (一般にスレーブサーバーで発生する) に対してマップ転送サービスを提供します。ypxfr は、マスターサーバー上でだけ動作します。 |
|
NIS マップの新バージョンを NIS マスターサーバーからそのスレーブサーバーにコピーします。yppush の実行は、NIS マスターサーバー上で行います。 |
|
指定された NIS サーバーにバインドするように ypbind プロセスに要求します。ypset は、セキュリティーの関係上、通常のオペレーションで気軽に使用できるようには設計されていません。したがって、ypset はできる限り使用しないでください。ypbind プロセスの ypset および ypsetme オプションについては、ypset(1M) と ypbind(1M) のマニュアルページを参照してください。 |
|
yppoll |
指定されたサーバー上で NIS マップのどのバージョンが動作しているかを通知します。yppoll はまた、NIS マップのマスターサーバーを一覧表示します。 |
NIS マップの内容を表示します。 |
|
NIS マップ内の指定された 1 つ以上のキーの値を出力します。システム管理者は、NIS サーバーマップのバージョンを指定することはできません。 |
|
クライアントが現在どの NIS サーバーを使用して NIS サービスを取得しているかを表示します。また、-m mapname オプションを指定してこのコマンドを起動した場合は、どの NIS サーバーが各マップのマスターサーバーであるかが表示されます。-m だけを指定した場合は、使用可能なすべてのマップ名、およびこれらのマップのマスターサーバーが表示されます。 |