Go to main content
Oracle® Solaris 11.3 ディレクトリサービスとネームサービスでの作業: DNS と NIS

印刷ビューの終了

更新: 2016 年 11 月
 
 

NIS の要素

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

NIS ドメイン

NIS ドメインは、NIS マップの共通のセットを共有するホストの集まりです。各ドメインにはドメイン名があり、マップの共通のセットを共有する各マシンがそのドメインに属しています。

NIS ドメインと DNS ドメインは、必ずしも同じではありません。一部の環境では、NIS ドメインは、企業全体にわたるネットワークサブネット管理レイアウトに基づいて定義されます。DNS 名と DNS ドメインは、インターネットの DNS ネーミング標準および階層によって定義されます。2 つのネームドメインネームシステムは、同じになるように構成される場合も、されない場合もあります。2 つのサービスのドメイン名は個別に制御されるため、異なった方法で構成される可能性があります。

ある特定のドメインのマップ用のサーバーが同じネットワークまたはサブネット内に存在するかぎり、どのホストもそのドメインに属することができます。NIS ドメインの検索では、リモート手続き呼び出し (RPC) が使用されます。そのため、NIS では、すべてのクライアントと、それらのクライアントに直接サービスを提供するすべてのサーバーマシンが同じアクセス可能なサブネット上に存在する必要があります。各管理サブネットを個別の (企業全体にわたる DNS ドメインとは異なる) NIS ドメインとして、ただし、共通のマスターマシンから管理された共通データベースを使用して管理することは、珍しいことではありません。svc:/network/nis/domain SMF サービスを使用して、NIS ドメイン名およびすべての共有された NIS 構成情報を管理できます。

NIS デーモン

NIS サービスは SMF によって管理されます。このサービスに関する有効化、無効化、再起動などの管理アクションは svcadm コマンドを使用して実行できます。SMF の概要については、Oracle Solaris 11.3 でのシステムサービスの管理 の 第 1 章, サービス管理機能の概要を参照してください。また、詳細については svcadm(1M) および svcs(1) のマニュアルページも参照してください。次の表では、NIS サービスを提供するデーモンについて説明します。

表 5  NIS デーモン
デーモン
機能
nscd
ほとんどのネームサービスリクエストにキャッシュを提供する、svc:/system/name-service/cache サービスによって管理される NIS クライアントサービス
rpc.yppasswdd
svc:/network/nis/passwd サービスによって管理される NIS パスワード更新デーモン

注 - rpc.yppasswdd デーモンは、r で始まるすべてのシェルを制限付きと見なします。たとえば、/bin/rksh で作業している場合は、そのシェルから別のシェルへの変更を許可されません。r で始まるシェルを持っているが、そのような制約を受けたくない場合は、ネットワーク情報システムのトラブルシューティングの回避策を参照してください。

rpc.ypupdated
publickey などのほかのマップを変更する、svc:/network/nis/update サービスによって管理されるデーモン
ypbind
svc:/network/nis/client サービスによって管理されるバインドプロセス
ypserv
svc:/network/nis/server サービスによって管理される NIS サーバープロセス
ypxfrd
svc:/network/nis/xfr サービスによって管理される高速マップ転送デーモン

NIS コマンド

次の表では、NIS サービスをサポートするコマンドについて説明します。

表 6  NIS コマンドのサマリー
コマンド
説明
make
このコマンドが /var/yp ディレクトリ内で実行されている場合は、/var/yp/Makefile ファイルを読み取ることによって NIS マップを更新します。make を使うと、入力ファイルに基づいてすべてのマップを更新したり、個々のマップを更新したりできます。NIS の make の機能については、ypmake(1M) のマニュアルページを参照してください。
makedbm
入力ファイルを取得し、それを dbm.dir および dbm.pag ファイルに変換します。NIS は、有効な dbm ファイルをマップとして使用します。また、マップを構成する鍵と値のペアを表示できるように、makedbm –u を使用してそのマップを分解することもできます。
ypcat
NIS マップの内容を表示します。
ypinit
自動的に入力ファイルから NIS サーバーのマップを作成します。また、クライアント上で初期の /var/yp/binding/domain/ypservers ファイルを作成するためにも使用できます。ypinit は、NIS マスターサーバーとNIS スレーブサーバーをはじめて設定するために使用します。
ypmatch
NIS マップ内の指定された 1 つ以上の鍵の値を出力します。システム管理者は、NIS サーバーマップのバージョンを指定することはできません。
yppoll
指定したサーバー上でどのバージョンの NIS マップが実行されているを示します。yppoll はまた、NIS マップのマスターサーバーを一覧表示します。
yppush
NIS マップの新バージョンを NIS マスターサーバーからそのスレーブサーバーにコピーします。yppush コマンドは、NIS マスターサーバー上で実行できます。
ypset
指定された NIS サーバーにバインドするよう ypbind プロセスに指示します。このコマンドは気軽に使用するものではなく、セキュリティーへの影響から、使用しないことが推奨されます。ypbind プロセスの –ypset および –ypsetme オプションについては、ypset(1M) および ypbind(1M) のマニュアルページを参照してください。
ypwhich
クライアントが現時点で NIS サービスのためにどの NIS サーバーを使用しているかを示します。–m mapname オプションを指定して起動されると、このコマンドは、どの NIS サーバーが各マップのマスターであるかを示します。–m のみが使用されている場合、このコマンドは、使用可能なすべてのマップの名前と、それらに対応するマスターサーバーを表示します。
ypxfr
NIS 自体をトランスポートメディアとして使用して、NIS マップをリモートサーバーからローカルの /var/yp/domain ディレクトリに取り込みます。ypxfr は対話的に実行するか、または crontab ファイルから定期的に実行できます。また、ypxfr が ypserv によって呼び出されると、転送が開始されます。

NIS マップ

NIS マップ内の情報は、ndbm 形式で格納されます。マップファイルの形式の詳細は、ypfiles(4) および ndbm(3C) のマニュアルページを参照してください。

NIS マップは、システムのネットワーク間で同じデータを共有できるように、UNIX の /etc データやその他の構成ファイル (passwdshadowgroup など) へのアクセスを拡張します。これらのファイルを共有すると、データファイルの管理上の更新や管理が簡略化されます。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 マップを作成するか、または変更します。


注 - マップは必ずマスターサーバー上で作成してください。スレーブサーバーで作成したマップはマスターサーバーに自動的に格納されません。

デフォルトの NIS マップ

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

NIS ドメインのデフォルトのマップは、各サーバーの /var/yp/domain–name ディレクトリ内にあります。たとえば、test.com ドメインに属しているマップは、各サーバーの /var/yp/test.com ディレクトリにあります。

次の表では、デフォルトの NIS マップについて説明し、各マップに対応するソースファイル名の一覧を示しています。

表 7  NIS マップの説明
マップ名
対応するソースファイル
説明
audit_user
audit_user
ユーザー監査の事前選択データを含みます。
auth_attr
auth_attr
承認名と説明を含みます。
bootparams
bootparams
ブート中にクライアントに必要なファイルのパス名を含みます (ルート、スワップなど)。
ethers.byaddr
ethers
マシン名と Ethernet アドレスを含みます。Ethernet アドレスはマップ内の鍵です。
ethers.byname
ethers
マシン名と 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
netgroup
グループ名、ユーザー名、マシン名を含みます。キーはマシン名です。グループ名はマップ内の鍵です。
netid.byname
passwdhosts
group
マシン名とメールアドレスを含みます (ドメイン名も含む)。netid ファイルがある場合には、ほかのファイルを使用して利用できるデータのほかにそれが参照されます。UNIX スタイルの認証に使用されます。
publickey.byname
publickey
Secure RPC によって使用される公開鍵データベースを含みます。
netmasks.byaddr
netmasks
IP 送信で使用されるネットワークマスクを含みます。アドレスはマップ内の鍵です。
networks.byaddr
networks
システムに認識されているネットワークの名前とその IP アドレスを含みます。アドレスはマップ内の鍵です。
networks.byname
networks
システムに認識されているネットワークの名前とその IP アドレスを含みます。ネットワークの名前はマップ内の鍵です。
passwd.adjunct.byname
passwd および shadow
C2 クライアント用の監査情報と隠蔽されたパスワード情報を含みます。
passwd.byname
passwd および shadow
パスワード情報を含みます。ユーザー名はマップ内の鍵です。
passwd.byuid
passwd および shadow
パスワード情報を含みます。ユーザー ID はマップ内の鍵です。
prof_attr
prof_attr
実行プロファイルの属性を含みます。
protocols.byname
protocols
システムに認識されているネットワークプロトコルを含みます。
protocols.bynumber
protocols
システムに認識されているネットワークプロトコルを含みます。プロトコル番号はマップ内の鍵です。
rpc.bynumber
rpc
システムに認識されている RPC のプログラム番号と名前を含みます。RPC プログラム番号はマップ内の鍵です。
services.byname
services
ネットワークに認識されているインターネットサービスを一覧表示します。ポートまたはプロトコルはマップ内の鍵です。
services.byservice
services
ネットワークに認識されているインターネットサービスを一覧表示します。サービス名はマップ内の鍵です。
user_attr
user_attr
ユーザーと役割に関する拡張属性を含みます。
ypservers
なし
ネットワークに認識されている NIS サーバーを一覧表示します。

ageing.byname マッピングには、NIS から LDAP への移行が実装されたときに、yppasswdd デーモンがディレクトリ情報ツリー (DIT) との間のパスワード有効期限情報の読み取りと書き込みを行うために使用する情報が含まれています。パスワード有効期限を使用していない場合は、ageing.byname をマッピングファイルからコメントアウトできます。NIS から LDAP への移行の詳細については、Oracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: LDAP の 第 8 章, NIS+ から LDAP への移行を参照してください。

NIS マップの使用

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) のマニュアルページを参照してください。

NIS マップのニックネーム

ニックネームは、passwd.byname に対する passwd などの、完全なマップ名に対する別名です。マップの使用可能なニックネームの一覧を取得するには、ypcat –x または ypwhich –x を入力します。

ニックネームは、/var/yp/nicknames ファイル (マップのニックネームのあとにスペースで区切られてマップの完全指定名が含まれる) 内に格納されます。このファイルは変更したり、更新したりできます。ニックネーム数は現在、500 に制限されています。