Solaris ネーミングの管理

付録 C NIS+ テーブルの情報

この付録には Solaris 7 リリース内のデフォルトの NIS+ テーブルに格納されている情報がまとめられています。NIS+ テーブルとそれを管理するコマンドの概要については第 14 章「NIS+ テーブルの管理」を参照してください。

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 テーブルにすることができます。これらをスイッチファイルで指定する順番によって、異なるソースから情報が組み合わされる方法が決まります。スイッチファイルの詳細は 第 2 章「ネームサービススイッチ」を参照してください。

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

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

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

auto_home テーブル

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

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

表 C-1 auto_home テーブル

列 

内容 

説明 

キー 

マウント先 

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

値 

 

オプションと位置 

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

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


costas barcelona:/export/partition2/costas

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

auto_master テーブル

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

表 C-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 つの列しかありませんが、列を使用して、次に示す情報を提供します。

表 C-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+ 主体の資格に関する情報を格納するテーブルです。ドメインにつき1つ存在し、ドメインに属するクライアントワークステーションおよびワークステーションにログインできるユーザー (つまり、ドメイン中の主体) の資格に関する情報を持っています。cred テーブルはドメイン中の org_dir サブディレクトリにあります。


注 -

cred テーブルはリンクしないでください。org_dir ディレクトリにはそれぞれ固有の cred テーブルがあり、他の org_dir ディレクトリの cred テーブルへのリンクを使用できません。


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

表 C-4 cred テーブル

NIS+ 主体名 

認証タイプ 

認証名 

公開データ 

 

非公開データ 

 

主体ユーザー名 

LOCAL 

UID 

グループ ID リスト 

 

主体ユーザー名またはワークステーション名 

DES 

Secure RPC ネット名 

公開鍵 

暗号化非公開鍵 

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

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

ethers テーブル

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

表 C-5 ethers テーブル

列 

内容 

説明 

アドレス 

Ethernet アドレス 

ワークステーションの 48 ビット Ethernet アドレス 

名前 

公式なホスト名 

ワークステーションの名前、hosts テーブルで指定

コメント 

コメント 

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

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

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

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

group テーブル

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

表 C-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 つの列があります。

表 C-7 hosts テーブル

列 

説明 

アドレス 

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

正式名 

ワークステーションの正式名 

名前 

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

コメント 

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

mail_aliases テーブル

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

表 C-8 mail_aliases テーブル

列 

説明 

別名 

別名の名前 

メンバーリスト 

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

コメント 

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

オプション 

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

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

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


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

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

netgroup テーブル

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


注 -

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


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

表 C-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 つの列があります。

表 C-10 netmasks テーブル

列 

説明 

アドレス 

ネットワークの IP 番号 

マスク 

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

コメント 

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

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


128.32.0.0 255.255.255.0

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

networks テーブル

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

表 C-11 networks テーブル

列 

説明 

正式名 

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

アドレス 

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

名前 

ネットワークの非公式名 

コメント 

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

passwd テーブル

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


注 -

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


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

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

表 C-12 passwd テーブル

列 

説明 

名前 

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

パスワード 

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

ユーザー ID 

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

グループ ID 

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

GCOS 

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

ホーム 

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

シェル 

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

シャドウ 

(表 C-13 を参照)

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

表 C-13 passwd テーブルのシャドウ列

項目 

項目 

最終変更日 

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

最小値 

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

最大値 

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

警告 

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

間隔 

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

期限 

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

未使用 

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

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

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

protocols テーブル

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

表 C-14 protocols テーブル

列 

説明 

正式名 

プロトコル名 

名前 

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

番号 

プロトコルの番号 

コメント 

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

rpc テーブル

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

表 C-15 rpc テーブル

列 

説明 

正式名 

プログラム名 

名前 

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

番号 

プログラムの番号 

コメント 

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

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


# 
# rpc file
#
rpcbind 100000 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 つの列があります。

表 C-16 services テーブル

列 

説明 

正式名 

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

名前 

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

プロトコル 

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

ポート 

ポート番号 

コメント 

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

timezone テーブル

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

表 C-17 timezone テーブル

列 

説明 

ドメイン名 

ドメイン名 

タイムゾーン名 

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

コメント 

時間帯に関するコメント