Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)

第 23 章 NIS+ テーブルの情報

この章では、Solaris ソフトウェアで提供されているデフォルトの NIS+ テーブルについて概要を説明します。対応するマニュアルページも参照してください。


注 –

NIS+ は、将来のリリースではサポートされなくなる可能性があります。NIS+ から LDAP への移行支援ツールは、Solaris 9 リリース以降で使用できます (Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)を参照)。詳細については、http://www.sun.com/directory/nisplus/transition.html を参照してください。


NIS+ のテーブル

NIS+ 環境では、ほとんどの名前空間の情報は、NIS+ テーブルに格納されます。

ネームサービスがないと、ほとんどのネットワーク情報は /etc ファイルに格納され、ほとんどすべての NIS+ テーブルが対応する /etc ファイルを持ちます。NIS サービスでは、/etc ファイルにほとんど対応する NIS マップにネットワーク情報を格納しました。


注 –

この章では、NIS+ の一部として配布されたものだけを説明します。ユーザーとアプリケーション開発者は、目的に応じて NIS+ との互換性があるテーブルを頻繁に作成します。ユーザーと開発者によって作成されたテーブルの詳細は、マニュアルを参照してください。


すべての NIS+ テーブルは、groups_dir ディレクトリオブジェクトに格納される admin とグループテーブルを除いて、ドメインの org_dir NIS+ ディレクトリオブジェクトに格納されます。


注 –

テーブルエントリはリンクしないでください。テーブルはほかのテーブルにリンクされますが、あるテーブルのエントリを別のテーブルのエントリにリンクしないでください。


NIS+ テーブルとほかのネームサービス

Solaris システムでは、ネームサービスのスイッチファイル (nsswitch.conf) によって、1 つ以上のソースを異なる名前空間の情報に対して指定できます。NIS+ テーブルのほかに、ソースは NIS マップ、DNS ゾーンファイル、/etc テーブルにすることができます。これらをスイッチファイルで指定する順番によって、異なるソースから情報が組み合わされる方法が決まります。スイッチファイルの詳細は第 1 章「ネームサービススイッチ」を参照してください。

NIS+ テーブル入力ファイルフォーマット

これらテーブルのどれかに対して入力ファイルを作成している場合、ほとんどのテーブルは、次の 2 つのフォーマットの条件を共有します。

特定のテーブルに、異なるまたは追加のフォーマットの条件がある場合には、「入力ファイルフォーマット」の項で説明します。

auto_home テーブル

auto_home テーブルは間接オートマウンタマップです。このマップによって NIS+ クライアントは、ドメイン内の任意のユーザーのホームディレクトリをマウントできます。このテーブルは、各ユーザーのホームディレクトリのマウントポイント、各ホームディレクトリの位置と、マウントオプションがあればそれを指定してマウントします。これは間接マップであるため、マウントポイントの最初の部分は auto_master テーブルに指定され、デフォルトでは /home となります。マウントポイントの 2 番目の部分 (つまり、/home の下にあるサブディレクトリ) は auto_home マップ内のエントリによって指定され、ユーザーごとに異なります。

auto_home テーブルには 2 つの列があります。

表 23–1 auto_home テーブル

列 

コメント 

説明 

キー 

マウントポイント 

ドメイン内のユーザーのログイン名 

値 

 

オプションと位置 

ユーザーごとのマウントオプションがあればそれと、ユーザーのホームディレクトリの位置 

たとえば、以下のようになります。


costas barcelona:/export/partition2/costas

ユーザー costas のホームディレクトリは、サーバー barcelona 上にあり、ディレクトリ /export/partition2/costas 内にあります。またこのホームディレクトリは、クライアントの /home/costas ディレクトリの下にマウントされます。このエントリにはマウントオプションはありません。

auto_master テーブル

auto_master テーブルは、ドメイン内のすべてのオートマウンタマップを含みます。直接マップの場合、auto_master テーブルは、単にマップ名を提供するだけです。間接マップの場合、このテーブルは、そのマウントポイントの先頭ディレクトリとマップ名の両方を提供します。auto_master テーブルには次の 2 つの列があります。

表 23–2 auto_master テーブル

列 

コメント 

説明 

キー 

マウントポイント 

マップがマウントされる先頭ディレクトリ。マップが直接マップの場合、これは /— で表されるダミーディレクトリである

値 

マップ名 

オートマウンタマップの名前 

たとえば、auto_master テーブルに次のエントリがあるとします。


/home auto_home
 /-auto_man
 /programs auto_programs

最初のエントリは auto_home マップを指定します。このエントリによって、auto_home マップのすべてのエントリに対して、マウント先の最上位ディレクトリ /home が指定されます。 auto_home マップは、間接マップです。2 番目のエントリには、auto_man マップを指定します。このマップは直接マップであるため、このエントリはマップ名だけを与えます。auto_man マップは、それ自体で、その各エントリに対するマウントポイントの完全パス名だけではなく、最上位ディレクトリも提供します。3 番目のエントリは auto_programs マップを指定します。このエントリはマウントポイントの最上位ディレクトリを提供するため、auto_programs マップは間接マップです。

すべてのオートマウンタマップは NIS+ テーブルとして格納されます。デフォルトでは、Solaris システムは必須の auto_master マップ、および非常に便利な auto_home マップを提供します。

1 つのドメインに対してさらに多くのオートマウンタマップを作成できますが、これらは必ず NIS+ テーブルとして格納し、auto_master テーブルに登録してください。その他のオートマウントマップを作成して、auto_master (ユーザーに対して作成された) に追加するときは、列名は「キー」と「」にする必要があります。オートマウンタの詳細は、オートマウンタ、または NFS ファイルシステムの関連マニュアルを参照してください。

bootparams テーブル

bootparams テーブルは、ドメイン内のすべてのディスクレスマシンに関する構成情報をもっています。ディスクレスマシンは、ネットワークに接続されていてもハードディスクをもたないマシンです。ディスクレスマシンにはディスク装置がないため、自分のファイルとプログラムをネットワーク上のサーバーのファイルシステムに持っています。また、自分の構成情報 (つまり「ブートパラメータ」) をサーバーに持っています。

このような構成になっているため、すべてのディスクレスマシンには、この情報がどこに格納されているかを知っている初期設定プログラムがあります。ネットワークにネームサービスがない場合、このプログラムはサーバーの /etc/bootparams ファイル内でこの情報を探します。ネットワークが NIS+ ネームサービスを使う場合、このプログラムは、代わりに bootparams テーブル内でこの情報を探します。

bootparams テーブルは、ディスクレスマシンに関するどんな構成情報でも格納できます。このテーブルには 2 つの列があり、構成キーとその値を格納します。デフォルトでは、このテーブルは各マシンのルート、スワップ、およびダンプの各パーティションの位置を格納するように設定されます。

デフォルトの bootparams テーブルには 2 つの列しかありませんが、列を使用して、次に示す情報を提供します。

表 23–3 bootparams テーブル

列 

コメント 

説明 

キー 

ホスト名 

ディスクレスマシンの正式ホスト名、hosts テーブルで指定

値 

構成 

ルートパーティション : マシンのルートパーティションの位置 (サーバー名とパス) 

 

 

スワップパーティション : マシンのスワップパーティションの位置 (サーバー名とパス) 

 

 

ダンプパーティション : マシンのダンプパーティションの位置 (サーバー名とパス) 

 

 

インストールパーティション 

 

 

ドメイン 

「入力ファイルのフォーマット」

列はタブ文字で区切ります。バックスラッシュ (\) は、1 つのエントリを複数の行で指定するのに使用します。ルート、スワップ、およびダンプの各パーティション用のエントリのフォーマットを次に示します。


client-name root=server:path \
swap=server:path \ 
dump=server:path \
install=server:path \
domain=domainname

次に例を示します。


buckarooroot=bigriver:/export/root1/buckaroo \
 swap=bigriver:/export/swap1/buckaroo \
 dump=bigriver:/export/dump/buckaroo \
 install=bigriver:/export/install/buckaroo \
 domain=sales.doc.com

x86 ベースのマシンでは、使用できるパラメータが増えます。詳細は、bootparams(4) のマニュアルページを参照してください。

client_info テーブル

client_info テーブルは、それが存在するドメインのサーバー設定を格納するために使われるオプションの内部 NIS+ テーブルです。このテーブルは、nisprefadm コマンドで作成および保管されます。


注意 – 注意 –

nisprefadm だけを使って、このテーブルで作業してください。このテーブルでは、ほかの NIS+ コマンドは使わないでください。


cred テーブル

NIS+ 主体の資格に関する情報を格納するテーブルです。cred テーブルは各ドメインに 1 つ存在し、ドメインに属するクライアントマシンおよびマシンにログインできるクライアントユーザー (つまり、ドメイン中の主体) の資格に関する情報を持っています。 cred テーブルはドメインの org_dir サブディレクトリにあります。


注 –

cred テーブルはリンクしないでください。org_dir ディレクトリには、それぞれ専用の cred テーブルが必要です。org_dir cred テーブルもリンクしないでください。


cred テーブルには以下の 5 つの列があります。

表 23–4 cred テーブル

NIS+ 主体名 

認証タイプ 

認証名 

公開データ 

非公開データ 

主体ユーザー名 

LOCAL 

UID 

グループ ID リスト 

 

主体ユーザー名またはマシン名 

DES 

Secure RPC ネット名 

公開鍵 

暗号化非公開鍵 

2 番目の「認証タイプ」という列の値により、ほかの 4 つの列の値のタイプが決定されます。

資格および cred テーブルの詳細は、第 12 章「NIS+ 資格の管理」を参照してください。

ethers テーブル

ethers テーブルは、インターネット上のマシンの 48 ビット Ethernet アドレスに関する情報を格納しています。次の 3 列があります。

表 23–5 ethers テーブル

列 

コメント 

説明 

アドレス 

Ethernet アドレス 

マシンの 48 ビット Ethernet アドレス 

名前 

公式なホスト名 

マシンの名前、hosts テーブルで指定

コメント 

コメント 

エントリに関するコメント (必要に応じて) 

Ethernet アドレスの形式は次のとおりです。

n:n:n:n:n:n hostname

ここで n は 0 〜 FF の 16 進数で、1 バイトを表します。このアドレスのバイト列は常に最上位のバイトから始まるネットワーク順になっています。

group テーブル

group テーブルは、UNIX ユーザーグループについての情報を格納します。group テーブルには 4 つの列があります。

表 23–6 group テーブル

列 

説明 

名前 

グループ名 

パスワード 

グループのパスワード 

グループ ID 

グループの数値 ID 

メンバー 

グループメンバー名、コンマで区切る 

Solaris の以前のリリースでは、ローカル /etc/group ファイルで +/- 構文を使用して、NIS グループマップ内のエントリを結合または上書きしました。Solaris システムではネームサービススイッチファイルを使用してマシンの情報ソースを指定するため、この仕様は不要になります。Solaris 2.x システムで必要なのは、クライアントの /etc/nsswitch.conf ファイルを編集して files を指定し、そのあとグループ情報のソースとして nisplus を指定することです。これによって、group テーブルの内容がクライアントの /etc/group ファイルの内容に効果的に追加されます。

hosts テーブル

hosts テーブルは、ドメイン内の全マシン名とそれらの IP アドレスを関連付けます。マシンは、通常は NIS+ クライアントでもありますが、必ずしもその必要はありません。bootparamsgroup、および netgroup などのほかのテーブルは、このテーブルに収められたネットワーク名に依存しています。これらのテーブルは、ネットワーク名を使用して、ホームディレクトリやグループメンバー情報などのほかの属性を個々のマシンに割り当てます。hosts テーブルには 4 つの列があります。

表 23–7 hosts テーブル

列 

説明 

アドレス 

マシンの IP アドレス (ネットワーク番号とマシン ID 番号) 

正式名 

マシンの正式名 

名前 

マシンを識別するために、ホスト名の代わりに使われる任意の名前 

コメント 

エントリに関するコメント (必要に応じて) 

mail_aliases テーブル

mail_aliases テーブルは、sendmail によって認識されるドメインのメール別名を含んでいます。これには 4 つの列があります。

表 23–8 mail_aliases テーブル

列 

説明 

別名 

別名の名前 

メンバーリスト 

この別名に送信されたメールを受信するメンバーが収められているリスト。メンバーはユーザー、マシン、またはほかの別名とすることができる 

コメント 

エントリに関するコメント (必要に応じて) 

オプション 

(マニュアルページを参照) 

「入力ファイルのフォーマット」

各エントリのフォーマットは次のとおりです。


alias-name:member[, member]...

1 つのエントリが複数の行にまたがるときには、バックスラッシュを使用します。

netgroup テーブル

netgroup テーブルは、リモートマウント、ログインとシェルのアクセス権をチェックするために使用される、ネットワーク全域にわたるグループを定義します。リモートマウントに使用されるネットグループのメンバーは、マシンです。リモートログインとシェルの場合、これらのメンバーはユーザーです。


注 –

サービスを提供している NIS+ サーバーが互換モードで動作している場合、クライアントマシンのユーザーは netgroup テーブルに対して ypcat を実行できません。実行すると、エントリの有無に関わらず「テーブルが空である」という結果が出ます。


netgroup テーブルには 6 つの列があります。

表 23–9 netgroup テーブル

列 

コメント 

説明 

名前 

グループ名 

ネットワークグループ名 

グループ 

グループ名 

このグループを構成するグループ名 

ホスト 

ホスト名 

ホスト名 

ユーザー 

ユーザー名 

ユーザーのログイン名 

ドメイン 

ドメイン名 

ドメイン名 

コメント 

コメント 

エントリに関するコメント (必要に応じて) 

「入力ファイルのフォーマット」

入力ファイルは、1 つのグループ名と任意の数のメンバーから構成されます。


groupname member-list ...

メンバー指定は、ほかのネットグループ名、または 3 つのフィールドを順序正しく並べたものとすることができます。ネットグループ名、3 つのフィールドを両方指定することもできます。


member-list::=groupname  | (hostname, username , domainname)

最初のフィールドには、グループに属するマシン名を指定します。2 番目のフィールドに、グループに属するユーザー名を指定します。3 番目のフィールドには、メンバー指定が有効となっているドメインを指定します。

指定のないフィールドは、ワイルドカードを示します。たとえば、次の netgroup には、すべてのドメインのユーザーとすべてのマシンが含まれます。


everybody ( , , )

フィールド内のダッシュは、ワイルドカードの反対で、このグループに所属するマシンやユーザーがないことを示します。次に 2 つの例を示します。


(host1, -,doc.com.) (-,joe,doc.com.)

最初の指定では、1 台のマシン host1doc.com. ドメインに入れますが、すべてのユーザーを除外します。2 番目の指定では、1 人のユーザーを doc.com. ドメインに入れますが、すべてのマシンを除外します。

netmasks テーブル

netmasks テーブルには、標準のインターネットサブネットに使われるネットワークマスクが収められています。このテーブルには 3 つの列があります。

表 23–10 netmasks テーブル

列 

説明 

アドレス 

ネットワークの IP 番号 

マスク 

ネットワーク上で使うネットワークマスク 

コメント 

エントリに関するコメント (必要に応じて) 

ネットワーク番号に関しては、マシンアドレスで使用される通常の IP ドット表記を使用できますが、マシンアドレスの代わりにゼロを残します。たとえば、


172.31.0.0 255.255.255.0

というエントリでは、クラス B ネットワーク 172.31.0.0 が、サブネットフィールドに 24 ビット、ホストフィールドに 8 ビットを持つことを意味します。

networks テーブル

networks テーブルにはインターネットのネットワークが含まれます。このテーブルは、Network Information Control Center (NIC) で管理される公式のネットワークテーブルから作成されるのが普通ですが、これにローカルネットワークを追加しなければならないこともあります。これには 4 つの列があります。

表 23–11 networks テーブル

列 

説明 

正式名 

ネットワークの正式名、インターネットが提供 

アドレス 

ネットワークの公式 IP 番号 

名前 

ネットワークの非公式名 

コメント 

エントリに関するコメント (必要に応じて) 

passwd テーブル

passwd テーブルには、ドメイン内のユーザーのアカウントに関する情報が入っています。これらのユーザーは、一般的には NIS+ 主体ですが、必ずしもその必要はありません。ただし、ユーザーが NIS+ 主体である場合、それらの資格はここには収められず、ドメインの cred テーブルに格納されることに注意してください。passwd テーブルは、その他 (または未認証) に対して通常読み取り権を与えます。


注 –

スーパーユーザー (ユーザー ID = 0) のエントリをこのテーブルに入れることはできません。ルートのパスワード情報は、/etc ディレクトリ上のファイルに格納してください。


passwd テーブル内の情報は、ユーザーのアカウントが作成されたときに追加されます。

passwd テーブルには次の列があります。

表 23–12 passwd テーブル

列 

説明 

名前 

ユーザーのログイン名であり、ユーザーのアカウントが作成されたときに割り当てられる。この名前には大文字を含める必要はない。最大 8 文字まで 

パスワード 

ユーザーの暗号化されたパスワード 

UID 

ユーザーの ID 番号であり、ユーザーのアカウントが作成されたときに割り当てられる 

グループ ID 

ユーザーのデフォルトグループの ID 番号 

GCOS 

ユーザーの実名と、ユーザーがメールメッセージ見出しの「From:」 フィールドに入れたい情報。この列が「“&”」の場合、単にユーザーのログイン名を使用する 

ホーム 

ユーザーのホームディレクトリのパス名 

シェル 

ユーザーの初期シェルプログラム。デフォルトは Bourne シェル : /usr/bin/sh

シャドウ 

(表 23–13 を参照)

passwd テーブルには、さらにシャドウ列があります。この列には、ユーザーアカウントに関して、次に示すような制限情報が格納されています。

表 23–13 passwd テーブルのシャドウ列

項目 

説明 

最終変更日 

1970 年 1 月 1 日からパスワードの最終変更日までの日数 

最小値 

推奨されるパスワード変更間隔の最小日数 

最大値 

パスワードが有効な最大日数 

警告 

ユーザーパスワードが期限切れになる前にユーザーが警告を受ける日数 

間隔 

ユーザーに許される休止日数 

期限 

ユーザーのアカウントが無効となる絶対日付 

未使用 

将来のために獲保。現在は 0 に設定されている 

Solaris の以前のリリースでは、ローカル /etc/passwd ファイル内で +/- 構文を使って、NIS パスワードマップ内のエントリを統合または上書きしました。Solaris 2x リリースではネームサービススイッチファイルを使用してマシンの情報ソースを指定するため、この仕様は不要になります。Solaris 2.x システムで必要なのは、クライアントの /etc/nsswitch.conf ファイルを編集して files を指定し、それに続けて passwd 情報のソースとして nisplus を指定することです。これによって、passwd テーブルの内容が /etc/passwd ファイルの内容に効果的に追加されます。

しかし、それでも +/- 方式を使用したい場合は、クライアントの nsswitch.conf ファイルを編集します。NIS を使用している場合、passwd のソースに compat を指定します。NIS+ を使用している場合は、passwd_compat: nisplus を追加してください。

protocols テーブル

protocols テーブルにはインターネットで使われるプロトコルが含まれます。これには 4 つの列があります。

表 23–14 protocols テーブル

列 

説明 

正式名 

プロトコル名 

名前 

プロトコルの識別に使われる非公式な別名 

番号 

プロトコルの番号 

コメント 

プロトコルに関するコメント 

rpc テーブル

rpc テーブルには、RPC プログラム名が含まれます。これには 4 つの列があります。

表 23–15 rpc テーブル

列 

説明 

正式名 

プログラム名 

名前 

プログラムの起動に使用できる別の名前 

番号 

プログラムの番号 

コメント 

RPC プログラムに関するコメント 

rpc テーブルの入力ファイルの例を次に示します。


#
# rpc file
#
rpcbind	00000	portmap	sunrpc	portmapper
rusersd	100002	rusers
nfs	100003	nfsprog
mountd	100005	mount	showmount
walld	100008	rwall	shutdown
sprayd	100012	spray
llockmgr	100020
nlockmgr	100021
status	100024
bootparam	100026
keyserv	100029	keyserver
nisd	100300	rpc.nisd
#

services テーブル

services テーブルは、インターネット上で使用できるインターネットサービスに関する情報を格納しています。これには 5 つの列があります。

表 23–16 services テーブル

列 

説明 

正式名 

サービスの公式インターネット名 

名前 

サービスを要求できる代替名のリスト 

プロトコル 

サービスを提供するためのプロトコル (たとえば 512/tcp) 

ポート 

ポート番号 

コメント 

サービスに関するコメント 

timezone テーブル

timezone テーブルは、ドメイン内の全マシンのデフォルトの時間帯を含んでいます。デフォルトの時間帯はインストール中に使用されますが、インストーラがこれを無効にすることができます。このテーブルには 3 つの列があります。

表 23–17 timezone テーブル

列 

説明 

名前 

ドメイン名 

時間帯 

時間帯の名前 (たとえば US/Pacific) 

コメント 

時間帯に関するコメント 

その他のデフォルトのテーブル

以下のテーブルも、デフォルトで用意されています。

詳細については、『man pages section 4』を参照してください。