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

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

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


注 –

NIS+ は、将来のリリースでサポートされない可能性があります。Solaris 9 オペレーティング環境には、NIS+ から LDAP への移行を支援するツールが用意されています (『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+ 主体の資格に関する情報を格納するテーブルです。ドメインにつき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 テーブル

列 

コメント 

説明 

Addr 

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 テーブル

列 

説明 

名前 

グループ名 

パスワード 

グループのパスワード 

GID 

グループの数値 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 ドット表記を使用できますが、マシンアドレスの代わりにゼロを残します。たとえば、


128.32.0.0 255.255.255.0

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

networks テーブル

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

表 23–11 networks テーブル

列 

説明 

正式名 

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

アドレス 

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

名前 

ネットワークの非公式名  

コメント 

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

passwd テーブル

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


注 –

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


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

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

表 23–12 passwd テーブル

列 

説明 

名前 

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

パスワード 

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

ユーザー ID 

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

グループ ID 

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

GCOS 

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

ホーム 

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

シェル 

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

シャドウ 

表 23–13 を参照してください。

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

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

表 23–14 protocols テーブル

列 

説明 

正式名 

プロトコル名 

名前 

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

番号 

プロトコルの番号 

説明 

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

rpc テーブル

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

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

表 23–16 services テーブル

列 

説明 

正式名 

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

名前 

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

プロトコル 

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

ポート 

ポート番号 

コメント 

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

timezone テーブル

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

表 23–17 timezone テーブル

フィールド 

説明 

名前 

ドメイン名 

時間帯 

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

コメント 

時間帯に関するコメント 

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

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

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