この章では、NIS+ コマンドセットを使用して、/etc ディレクトリ内のファイルや NIS マップからマスターサーバー上に NIS+ テーブルを作成する方法について説明します。また、この章では NIS+ テーブルから NIS マップへ情報を戻す方法と、passwd テーブルのパスワード列へのアクセスを制限する方法を説明します。
NIS+ テーブルを生成する作業は、この章で説明する NIS+ コマンドセットを使用する方法よりも、Part I で説明した NIS+ 設定スクリプトを使用した場合の方が簡単です。この章で説明する方法は、NIS+ に精通した管理者や、設定スクリプトでは提供されない標準以外の機能や構成を必要とする管理者だけが使用してください。さらに、Solstice AdminSuite ツールをお持ちの場合は、NIS+ テーブルに関連する作業が簡単になります。
NIS+ テーブルを生成するには次の 4 種類の方法があります。
ファイルから作成する。(「NIS+ テーブルをファイルから生成する方法」参照)
NIS マップから作成する。(「NIS+ テーブルを NIS マップから生成する方法」参照)
nispopulate スクリプトを使用して作成する。(「NIS+ テーブルの生成 (populate)」および 「新しいサブドメインのテーブルの生成」)
Solstice AdminSuite ツールを使用する
マップまたはファイルからテーブルを生成する場合、第 5 章「ルートドメインの設定」および第 8 章「非ルートドメインの構成」で説明する手順に従って、ルートまたはサブドメインの設定作業の中で、あらかじめテーブルを作成しておく必要があります。ドメインテーブルは、テーブルの作成後いつでも生成できますが、ドメインの設定が完了したらすぐに生成しておくことをお勧めします。テーブルを生成すると、クライアントに関する必要な情報がすでにドメインテーブル内に格納されることになるため、クライアントの追加が簡単にできます。
ファイルまたは NIS マップからテーブルを生成する場合、つぎの 3 つの方法を使用できます。
「置換」 - この方法を使用すると、NIS+ は、初めにテーブル内の既存のエントリをすべて削除してから、情報源からのエントリを追加します。サイズの大きいテーブルの場合は、マスターサーバーの /var/nis/trans.log ファイルにエントリの大きなセットが追加されます (既存のエントリを削除するためのセットと新しいエントリを追加するためのセット)。/var/nis 内のディスク空間を大幅に使用するため、複製サーバーへの転送時間はさらに長くなります。
「追加」- この方法は、NIS+ テーブルに情報源からのエントリを追加します。既存のエントリが影響されることはありません。
「マージ」- この方法は、置換オプションと結果は同じですが、内部的な処理が異なります。既存のエントリを削除後、置換するのではなく、更新します。このオプションでは、NIS+ は次の 3 種類のエントリを異なる方法で処理します。
情報源内だけに存在するエントリは、テーブルに追加する
情報源とテーブルの両方に存在するエントリは、テーブルで更新する
NIS+ テーブルだけに存在するエントリは、テーブルから削除する
大きなテーブルを、内容があまり変わらないファイルやマップで更新する場合、マージ用のオプションを使用すると、サーバーの処理を大幅に減らすことができます。情報源内で重複していないエントリだけを削除する (置換オプションでは、単純にすべてのエントリを削除する) ため、重複するエントリに対する削除と追加の処理を 1 回ずつ少なくできます。このため、この方法をお勧めします。
これは /etc/hosts などの ASCII ファイルの内容を NIS+ テーブルに転送する作業です。
手順の概要は次のとおりです。
データを転送する各ファイルの内容を確認します。
各ファイルのコピーを作成します。作成したコピーを実際の転送に使用します。(このガイドでは、hosts.xfr のように、転送されるファイルのコピーの最後に .xfr を付けます。)
NIS+ クライアントにログインします。(テーブルを更新するための資格とアクセス権が必要です。詳細は、「ファイルのセキュリティ上の留意点」を参照)。
nisaddent を使用して、次の必要なファイルを 1 つずつ転送します。
aliases bootparams ethers group hosts netgroup netmasks networks passwd protocols rpc services shadow
publickey ファイルを転送します。
オートマウンタ情報を転送します。
複製サーバーに対して nisping を実行します。
テーブルにチェックポイントを実行します。
NIS+ テーブルは、NIS+ クライアントまたは NIS+ ルートマスターサーバーから生成できます。NIS+ テーブルを生成するには、スーパーユーザー (ルート) としてログインする必要はありませんが、一定の資格とアクセス権は必要です。テーブル内のエントリをテキストファイルのエントリによって置換またはマージする場合、そのテーブルへの作成権と削除権が必要です。新しいエントリを追加する場合、作成権だけが必要です。
NIS+ のセキュリティシステムは複雑です。NIS+ のセキュリティに精通していない場合は、『Solaris ネーミングの管理』のセキュリティ関連の章を読んでから NIS+ 環境の設定を始めてください。
この処理が完了した後、テーブルエントリは、動作を実行した NIS+ 主体と、環境変数 NIS_GROUP によって指定されたグループによって所有されます。
ドメインをあらかじめ設定していて、そのマスターサーバーを実行していなければなりません。
ドメインのサーバーには、新しいテーブル情報を収容できるだけの十分なスワップ領域が必要です。NIS+ の詳細な要件については、『NIS+ への移行』を参照してください。
ファイル内の情報は、ロード先のテーブルに合った書式で書かれていなければなりません。対応する NIS+ テーブルに転送するテキストファイルで要求される書式については、「nispopulate を実行するための前提条件」を参照してください。ローカルの /etc 内のファイルは、正しい書式で書かれているのが普通ですが、いくつかのコメントを削除しなければならないこともあります。
マシン名とユーザー名は重複しないようにしてください。ユーザーとマシンは、すべて固有の名前を付ける必要があります。また、ユーザーと同じ名前の付いたマシンは使用できません。
マシン名にはドット (ピリオド) および下線は使用できません。たとえば、sales.alpha というマシン名は無効です。ドットや下線の代わりにハイフンを使うことはできます。たとえば、sales-alpha というマシン名は有効です。
転送されるテキストファイルの名前と位置が必要です。
データを転送する各ファイルをチェックします。
不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。不完全なエントリは、設定を完了した後に追加する方が、不完全なエントリや破損したエントリを転送するよりも簡単です。
転送する各ファイルの作業用コピーを作成します。
このセクションで説明する実際のファイル転送の手順では、作成した作業用コピーを使用します。各作業用コピーには、同じファイル名拡張子を付けます (たとえば、.xfr)。
rootmaster# cp /etc/hosts /etc/hosts.xfr
万が一に備えて、使用する予定のすべてのファイルを /etc 以外のディレクトリにコピーしておくのもよいでしょう。nisaddent コマンドと nispopulate コマンドでは、ファイルソースディレクトリを指定できます。
NIS+ クライアントにログインします。
この作業はどの NIS+ クライアントからでも実行できます。ただし、そのクライアントは、情報の転送先となるテーブルと同じドメインに所属していなければなりません。ここで示す例では、ルートマスターサーバーを使用します。これらの例では、システム管理者はスーパーユーザーとしてログインしているため、この操作を実際に実行している (したがって、適切な資格とアクセス権を必要とする) NIS+ 主体は、ルートマスターサーバーです。
しかし、NIS+ テーブルを更新するだけであれば、あえてルートマスターサーバーにスーパーユーザー (ルート) としてログインする必要はありません。スーパーユーザーであれ、一般ユーザーであれ、一定の資格、権限、許可さえあれば、どのマシンからでも NIS+ テーブルを更新できます。
このシェルのコマンド検索パスに /usr/lib/nis を追加します。
テーブルごとに /usr/lib/nis/nisaddent コマンドを使用するため、検索パスに /usr/lib/nis を追加しておくと、毎回これを入力する必要がありません。ここでは、C シェルユーザーの場合と Bourne シェルまたは Korn シェルのユーザーの場合の 2 つの例を示します。
C シェルの場合
rootmaster# setenv PATH $PATH¥:/usr/lib/nis
Bourne または Korn シェルの場合
rootmaster# PATH=$PATH:/usr/lib/nis rootmaster# export PATH
nisaddent を使用して、次のファイルを 1 度に 1 つずつ転送します。
aliases bootparams ethers group hosts netgroup netmasks networks protocols rpc services
publickey、automounter、passwd および shadow の各ファイルは、実行する手順がそれぞれ少し異なります。publickey ファイルの場合は、手順 6 に、automounter ファイルの場合は、手順 7 に、passwd ファイルと shadow ファイルの場合は、手順 8 に進んでください。
デフォルトでは、nisaddent はファイル情報をテーブル情報に追加します。置換またはマージを行うには、-r または -m オプションを使用します。
rootmaster# nisaddent -r -f filename table[domain]
追加する場合、次のように入力します。
rootmaster# nisaddent -a -f filename table [domain]
マージする場合、次のように入力します。
rootmaster# nisaddent -m -f filename table [domain]
初めてテーブルを生成する場合は、デフォルトの -a オプションが最適です。NIS+ テーブルを NIS マップまたは /etc 内のファイルと同期させるための最適なオプションは -m (マージ) オプションです。
filename はファイル名です。通常は、nisaddent によって作成されたことを示す .xfr をファイル名の最後につけます。
table は NIS+ テーブル名です。domain 引数は省略可能で、テーブルを別のドメインに生成するときに使用します。ルートドメインのマスターサーバーから入力されたいくつかの例を次に示します。これらのファイルは、/etc 内のファイルを編集したものです。
rootmaster# nisaddent -m -f /etc/hosts.xfr hosts rootmaster# nisaddent -m -f /etc/groups.xfr groups
この作業をルート以外のサーバーから実行する場合、ルート以外のサーバーは、サポートするドメインの上のドメインに所属することに注意してください。つまり、ルート以外のサーバーはもう一つのドメインのクライアントです。たとえば、sales.doc.com. マスターサーバーは doc.com. ドメインに所属します。そのマスターサーバーからテーブルを sales.doc.com. ドメインに生成するには、nisaddent 文に sales.doc.com. ドメイン名を追加しなければなりません。たとえば、次のようになります。
salesmaster# nisaddent -f /etc/hosts.xfr hosts sales.doc.com.
この作業を sales.doc.com. ドメインのクライアントとして実行した場合、このコマンドにドメイン名を指定する必要はありません。nisaddent については、『Solaris ネーミングの管理』のテーブルに関連する章を参照してください。
エントリが NIS+ テーブルに転送されたことを確認するには、niscat コマンドを使用します。 詳細は、『Solaris ネーミングの管理』のテーブルに関する章を参照してください。
rootmaster# niscat groups.org_dir root::0:root other::1:: bin::2:root,bin,daemon .
障害追跡のこつ: niscat を実行しても表示された内容が反映されてない場合、それは、変更がマスターサーバーから複製サーバーに送られていないためかもしれません。そのような場合は、5 〜 10 分後にもう一度 niscat の実行を試みるか、niscat に -M オプションを付けて実行してください。-M オプションを付けると、マスターサーバーのデータが取得されます。
publickey ファイルを転送します。
ドメインの cred テーブルには、すでにいくつかの資格が格納されているため、この cred テーブルに転送する publickey テキストファイルの内容によって、これらの資格が上書きされないよう確認する必要があります。これを避けるには、publickey テキストファイルからこれらの資格を取り除きます。rootmasterの場合、次のようになります。
unix.rootmaster@doc.com public-key:private-key
こうすれば、publickey ファイルの内容を cred テーブルに転送できます。nisaddent に -a (追加) オプションを付けて実行します。
rootmaster# nisaddent -a -f /etc/publickey.xfr -t cred.org_dir publickey [domain]
ただし、この操作は DES 資格を cred テーブルに転送するだけです。主体は、cred テーブルに対する自分の LOCAL 資格を作成する必要があります。
オートマウンタ情報を転送します。
nissetup ユーティリティは auto_master テーブルと auto_home テーブルを作成しますが、これらは標準の NIS+ テーブルとはみなされません。したがって、これらのテーブルに情報を転送するには、少し異なる構文が必要となります。特に、-t フラグを使用し、そのテーブルが key-value 形式であることを指定しなければなりません。
rootmaster# nisaddent -f auto.master.xfr -t auto_master.org_dir key-value rootmaster# nisaddent -f auto.home.xfr -t auto_home.org_dir key-value
NIS+ パスワードテーブルを作成します。
NIS+ のパスワードテーブルは、/etc/passwd および /etc/shadow の両方のディレクトリのファイルから引き出されるデータで構成されます。このため、nisaddent を 2 回実行してパスワードテーブルを作成しなければなりません。passwd テーブルを対象として /etc/passwd ファイルからデータを引き出す場合と、shadow テーブルを対象として /etc/shadow ファイルからデータを引き出す場合の 2 回実行します。(shadow ファイルに対して nisaddent を実行する場合、shadow テーブルが存在しなくても、ターゲットテーブルに shadow を指定すること、そしてデータが実際に passwd テーブルの shadow 列に配置されることに注意してください。)
rootmaster# nisaddent -m -f /etc/passwd.xfr passwd rootmaster# nisaddent -m -f /etc/shadow.xfr shadow
nisping を実行して更新内容を複製サーバーに送ります。
nisping を実行すると、複製サーバーに変更が反映されます。
master1# nisping domain master1# nisping org_dir.domaincom. master1# nisping groups_dir.domain
テーブルに対しチェックポイントを実行します。
ここまでの手順で、マスターサーバーと複製サーバーの NIS+ データセットがメモリ内で更新されました。今度はそれをディスク上のテーブルファイルに書き込みます。この作業を「チェックポイント」といいます。(チェックポイントは必ずしもここで実行しなければならないわけではありません。定期的に実行しさえすればいいのですが、重要な変更を加えた場合は、できるだけ早い機会にディスクに書き込むようにした方がいいでしょう。)
この手順により、ドメインをサポートしている全サーバーは、それらの .log ファイルからディスク上のテーブルのコピーに新しい情報を転送します。ルートドメインを設定したばかりの場合、そのルートドメインにはまだ複製サーバーがないため、この手順はルートマスターサーバーだけが対象となります。チェックポイントを実行するには nisping コマンドに -C (大文字) オプションを付けて実行します。
rootmaster# isping -C org_dirn Checkpointing replicas serving directory org_dir.doc.com. : Master server is rootmaster.doc.com. Last update occurred at July 14, 1997 Master server is rootmaster.doc.com. checkpoint succeeded.
スワップ空間が不足している場合、サーバーはチェックポイントを正常に実行できませんが、そのことを通知してくれません。すべてがうまくいったことを確認する方法の 1 つは、niscat コマンドを使用してテーブルの内容を表示することです。スワップ空間が不足している場合、次のエラーメッセージが表示されます。
can't list table: Server busy, Try Again.
このメッセージ内容からはわかりませんが、これはスワップ空間の不足を示しています。スワップ空間を増やし、このドメインに再びチェックポイントを実行します。
ここでは、NIS マップの内容を NIS+ テーブルに転送します。手順を次に示します。
データを転送する各 NIS マップの内容を確認します。
NIS+ クライアントにログインします。
nisaddent を使用して、次のマップ を 1 つずつ転送します。
aliases bootparams ethers group hosts netgroup netmasks networks passwd protocols rpc services
publickey マップを転送します。
オートマウンタ情報を転送します。
nisping を実行して変更内容を複製サーバーに反映させます。
テーブルにチェックポイントを実行します。
この作業を行うシステム管理者 (またはクライアント上のスーパーユーザー) に適切な資格とアクセス権がある限り、この作業は、どの NIS+ クライアントからでも実行できます。テーブル内のエントリを NIS マップのエントリで置換またはマージする場合、そのテーブルへの作成権と削除権が必要です。新しいエントリを追加する場合、作成権だけが必要です。
この作業が完了した後、テーブルエントリは、作業を実行した NIS+ 主体 (システム管理者である自分、またはスーパーユーザーとしてログインした場合はそのクライアント) と、環境変数 NIS_GROUP によって指定されたグループによって所有されます。
ドメインをあらかじめ設定していて、そのマスターサーバーを実行していなければなりません。
マシン名とユーザー名は重複しないようにしてください。ユーザーとマシンは、すべて固有の名前を付ける必要があります。また、ユーザーと同じ名前の付いたマシンは使用できません。
マシン名にはドット (ピリオド) を使用しないでください。たとえば、sales.alpha というマシン名にはできません。sales-alpha というマシン名にはできます。
NIS マップの名前と位置が必要です。
データを転送する各 NIS マップをチェックします。
不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。不完全なエントリは、設定を完了した後に追加する方が、不完全なエントリや破損したエントリを転送するよりも簡単です。
NIS+ クライアントにログインします。
この作業はどの NIS+ クライアントからでも実行できます。ただし、そのクライアントは、情報の転送先となるテーブルと同じドメインに所属していなければなりません。ここで示す例では、ルートマスターサーバーを使用します。これらの例では、システム管理者はスーパーユーザーとしてログインしているため、この操作を実際に実行している (したがって、適切な資格とアクセス権を必要とする) NIS+ 主体は、ルートマスターサーバーです。
このシェルのコマンド検索パスに /usr/lib/nis を追加します。
テーブルごとに /usr/lib/nis/nisaddent コマンドを使用するため、コマンド検索パスに /usr/lib/nis を追加しておくと、毎回これを入力する必要がありません。ここでは、C シェルユーザーの場合の例と Bourne シェルまたは Korn シェルのユーザーの場合の例を示します。
C シェルの場合
rootmaster# setenv PATH $PATH¥:/usr/lib/nis
Bourne または Korn シェルの場合
rootmaster# PATH=$PATH:/usr/lib/nis rootmaster# export PATH
nisaddent を使用して、次のマップを 1 度に 1 つずつ転送します。
aliases bootparams ethers group hosts netgroup netmasks networks passwd protocols rpc services
publickey ファイルとオートマウンタマップでは、少し手順が異なります。publickey ファイルの場合は、「NIS+ テーブルをファイルから生成する方」の手順 6 に、オートマウンタファイルの場合は、手順 7 に進んでください。
デフォルトでは、nisaddent はファイル情報をテーブル情報に追加します。置換またはマージを行うには、-r または -m のオプションを使用します。
置換する場合、次のように入力します。
rootmaster# nisaddent -r -y nisdomain table
追加する場合、次のように入力します。
rootmaster# nisaddent -a -y nisdomain table
マージする場合、次のように入力します。
rootmaster# nisaddent -m -y nisdomain table
初めてテーブルを生成するときに最適なオプションは、デフォルトの -a オプションです。NIS+ テーブルを NIS マップまたは /etc 内のファイルと同期させるための最適なオプションは -m (マージ) オプションです。
-y (小文字) オプションは、テキストファイルではなく、NIS ドメインを示します。nisdomain 引数は、ユーザーが NIS+ テーブルに転送しようとしているマップをもつ NIS ドメインの名前です。実際のマップを指定する必要はありません。nisaddent ユーティリティは、table 引数に対応する NIS マップを自動的に選択します。
rootmaster# nisaddent -m -y olddoc hosts rootmaster# nisaddent -m -y olddoc passwd rootmaster# nisaddent -m -y olddoc groups
最初の例では、olddoc (NIS) ドメイン内の hosts.byname マップと hosts.byaddr マップの内容を、ルートドメイン (NIS+) 内の NIS+ hosts テーブルに転送します。2 番目の例では、パスワード関連情報を格納している NIS マップを、NIS+ passwd テーブルに転送します。3 番目の例では、グループ関連情報で同じことを実行します。nisaddent コマンドの、詳細は、『Solaris ネーミングの管理』のテーブルに関連する章を参照してください。
ドメインの cred テーブルには、すでにいくつかの資格が格納されているため、cred テーブルに転送するpublickeyマップの内容によって、これらの資格が上書きされないように確認する必要があります。
初めに、publickey マップをファイルにダンプします。続いて、テキストエディタでそのファイルをオープンします。たとえば、次のように入力します。
rootmaster# makedbm -u /var/yp/olddoc/publickey.byname /etc/publickey.xfr rootmaster# vi /tmp/publickey.tmp
publickey マップから、ログインしているワークステーションの資格を削除します。
rootmaster の場合、削除する行は次のようになります。
unix.rootmaster@doc.com public-key:private-key
これにより、マップではなく「ファイル」の内容を cred テーブルに転送できます。nisaddent に -a (追加) オプションを付けて実行します。
rootmaster# nisaddent -a -f /etc/publickey.xfr -t cred.org_dir Publickey
ただし、この操作は DES 資格を cred テーブルに転送するだけです。cred テーブルに対する自分の LOCAL 資格は自分で作成する必要があります。
オートマウンタ情報を転送します。
nissetup ユーティリティは auto_master テーブルと auto_home テーブルを作成しますが、これらは標準の NIS+ テーブルとはみなされません。したがって、これらのテーブルに情報を転送するには、少し異なる構文が必要となります。
rootmaster# nisaddent -y olddoc -Y auto.master -t auto_master.org_dir key-value rootmaster# nisaddent -y olddoc -Y auto.home -t auto_home.org_dir key-value
NIS ドメイン名 (この例では olddoc) と同様、-m と -y のオプションが必要です。しかし、NIS マップ名 (auto.master など) の前には -Y (大文字) を付けなければなりません。次に、オートマウンタの「テキストファイル」を転送するときに必要なように、標準の NIS+ テーブルであることを示す -t オプションを使用しなければなりません。この引数は、NIS+ テーブル名 (auto_master.org_dir) とテーブルの種類 (key-value) です。NIS+ テーブル名の後ろには必ず接尾辞 org_dir を追加してください。
nisping を実行して更新内容を複製サーバーに送ります。
nisping を実行すると、複製サーバーに変更が反映されます。
master1# nisping domain master1# nisping org_dir.domaincom. master1# nisping groups_dir.domain
テーブルに対しチェックポイントを実行します。
この手順により、ドメインをサポートしている全サーバーが、それらの .log ファイルからディスク上のテーブルのコピーに新しい情報を転送します。ルートドメインを設定したばかりの場合、そのルートドメインにはまだ複製サーバーがないため、この手順はルートマスターサーバーだけが対象となります。nisping コマンドに -C (大文字) オプションを付けて実行します。
rootmaster# nisping -C org_dir Checkpointing replicas serving directory org_dir.doc.com. : Master server is rootmaster.doc.com. Last update occurred at July 14, 1994 Master server is rootmaster.doc.com. checkpoint succeeded.
スワップ空間が不足している場合、サーバーはチェックポイントを正常に実行できませんが、そのことを通知してくれません。すべてがうまくいったことを確認する方法の 1 つは、niscat コマンドを使用してテーブルの内容を表示することです。スワップ空間が不足している場合、次のエラーメッセージが表示されます。
can't list table: Server busy, Try Again.
このメッセージ内容からはわかりませんが、これはスワップ空間の不足を示しています。スワップ空間を増やし、このドメインに再びチェックポイントを実行します。
ここでは、NIS+ テーブルの内容を、Solaris 1.x NIS マスターサーバー上の NIS マップに転送します。手順を次に示します。
この作業を実行するには、内容を転送する各テーブルへの読み取りアクセスが必要です。
マップを NIS サーバー上にあらかじめ作成しておかなければなりません。
NIS+ サーバーにログインします。
この例では、dualserver という名前のサーバーを使用します。
NIS+ テーブルを出力ファイルに転送します。
次に示すように、各テーブルごとに 1 回、-d オプションを付けた nisaddent コマンドを使用します。
dualserver% /usr/lib/nis/nisaddent -d -t table tabletype > filename
-d オプションは、table の内容を filename に出力し、その内容を /etc 内の標準のファイル形式に変換して戻します。
出力ファイルの内容を NIS マップに転送します。
NIS+ の出力ファイルは、NIS マップ用の入力ファイルとして使用できる ASCII ファイルです。これらを NIS マスターの /etc ディレクトリにコピーし、通常の方法で make を実行します。
dualserver# cd /var/yp dualserver# make
ここでは、passwd テーブルのパスワードに関係する列に対する読み取りアクセスを所有者とテーブルの管理者だけに制限し、しかも passwd テーブル内の残りの列に対する未認証主体 (アプリケーションを含む) の読み取りアクセスに影響を与えない方法を説明します。
この作業では、次のアクセス権を設定します。
Nobody Owner Group World Table Level Rights: ---- rmcd rmcd ---- Passwd Column Rights: ---- rm-- rmcd ---- Shadow Column Rights: ---- rm-- rmcd ----
ドメインを NIS 互換モードで動作させてはいけません。
ドメインのすべての NIS+ クライアントには DES 資格が必要です。
ドメインのすべてのクライアントで、Solaris リリース 2.3 以降のリリースが実行されている必要があります。
ユーザーのネットワークパスワード (DES 資格の暗号化に使用) は、ログインパスワードと同じディレクトリでなければなりません。
passwd テーブルをあらかじめ設定しておかなければなりません。ただし、情報が入っている必要はありません。
この作業を実行する NIS+ 主体には、passwd テーブルへの変更権が必要です。
必要なのは passwd テーブルの名前だけです。
ドメインのマスターサーバーにログインします。
この例ではルートマスターサーバー rootmaster を使用します。
現在のテーブルと列のアクセス権を確認します。
niscat -o コマンドを実行します。
rootmaster# niscat -o passwd.org_dir
この作業では、次のような既存のアクセス権になっていることを前提としています。
Access Rights : ----rmcdrmcdr--- Columns : [0] Name : name Access Rights : r-----------r--- [1] Name : passwd Access Rights : -----m---------- [2] Name : uid Access Rights : r-----------r--- [3] Name : gid Access Rights : r-----------r--- [4] Name : gcos Access Rights : r----m------r--- [5] Name : home Access Rights : r-----------r--- [6] Name : shell Access Rights : r-----------r--- [7] Name : shadow Access Rights : r-----------r---
自分のアクセス権が異なる場合、別の構文を使用する必要があります。詳細は、『Solaris ネーミングの管理』のアクセス権に関連する章を参照してください。
テーブルのアクセス権を変更します。
nischmod コマンドを実行して、テーブルのオブジェクトレベルのアクセス権を ----rmcdrmcd---- に変更します。
rootmaster# nischmod og=rmcd,nw= passwd.org_dir
列のアクセス権を変更します。
nistbladm コマンドを -u オプションを付けて使用して、passwd 列 および shadow 列のアクセス権を次のように変更します。
passwd ---- rm-- ---- ---- shadow ---- r--- ---- ---- rootmaster# nistbladm -u passwd=o+r, shadow=o+r passwd.org_dir
新しいアクセス権を確認します。
手順 2 の場合と同様、niscat -o コマンドを実行します。アクセス権は、手順 2 の出力と同じでなければなりません。
NIS+ テーブルの生成に必要な手順のまとめを次に示しています。これは、最も簡単な場合を想定しています。このため、まとめを参考として使用する前に、作業の詳細を十分に理解しておいてください。また、このまとめでは各コマンドに対するサーバーの応答は示していません。
表 9-1 まとめ : NIS+ テーブルへのファイルの転送|
作業 |
コマンド |
|---|---|
|
NIS+ クライアントにログインする |
rootmaster# |
|
転送するファイルの作業用コピーを作成する |
# cp /etc/hosts /etc/hosts.xfr |
|
検索パスに /usr/lib/nis を追加する |
# PATH=$PATH:/usr/lib/nis; export PATH |
|
各ファイルを 1 つずつ転送する |
# nisaddent -m -f /etc/hosts.xfr hosts |
|
publickey ファイルから古いサーバー資格を削除する |
# vi /etc/publickey.xfer |
|
資格テーブルに publickey ファイルを転送する |
# nisaddent -a -f /etc/publickey.xfr cred |
|
オートマウンタファイルを転送する |
# nisaddent -f auto.master.xfr -t auto_master.org_dir key-value # nisaddent -f auto.home.xfr -t auto_home.org_dir key-value |
|
テーブルディレクトリにチェックポイントを実行する |
# nisping -C org_dir |
表 9-2 まとめ : NIS+ テーブルへのマップの転送
|
作業 |
コマンド |
|---|---|
|
NIS+ クライアントにログインする |
rootmaster# |
|
検索パスに /usr/lib/nis を追加する |
# PATH=$PATH:/usr/lib/nis; export PATH |
|
各マップを 1 つずつ転送する |
# nisaddent -m -y olddoc hosts |
|
|
# makedbm -u /var/yp/olddoc/publickey.byname > /etc/publickey.xfr |
|
新しい資格を削除する |
# vi /etc/publickey.xfr |
|
publickey ファイルを転送する |
# nisaddent -a -f /etc/publickey.xfr -t cred.ortg_dir publickey |
|
オートマウンタマップを転送する |
# nisaddent -y olddoc -Y auto.master -t auto_master.org_dir key-value # nisaddent -y olddoc -Y auto.home -t auto_home.org_dir key-value |
|
テーブルディレクトリにチェックポイントを実行する |
# nisping -C org_dir |
表 9-3 まとめ : NIS+ テーブルを NIS マップに転送する
|
作業 |
コマンド |
|---|---|
|
NIS+ サーバにログインする |
dualserver# |
|
NIS+ テーブルをファイルに転送する |
# /usr/lib/nis/nisaddent -d [-ttable] tabletype > filename |
|
ファイルを NIS マップに転送する |
# makedbm flags output-file NIS-dbm-file |
表 9-4 まとめ : パスワード列へのアクセス権を変更する
|
作業 |
コマンド |
|---|---|
|
ドメインのマスタサーバーにログインする |
rootmaster# |
|
テーブルの既存の権利をチェックする |
# niscat -o passwd.org_dir |
|
テーブルに新しい権利を割り当てる |
# nischmod og=rmcd,nw= passwd.org_dir |
|
列に新しい権利を割り当てる |
# nistbladm -u passwd=o+r shadow=n+r passwd.org_dir |
|
新しい権利を確認する |
# niscat -o passwd.org_dir |