NIS+ サーバーの公開鍵は名前空間のあちこちに格納されています。サーバーに新規の資格情報を作成する場合、新規の鍵ペアが作成され cred テーブルに格納されます。しかし、名前空間ディレクトリオブジェクトには、まだサーバーの古い公開鍵のコピーが残っています。nisupdkeys コマンドを使用して、これらのディレクトリオブジェクトのコピーを更新します。
古い鍵ペアの保全が危うくなったり、非公開鍵の暗号化に使ったパスワードを忘れてしまったりして新規の鍵ペアを作成する場合、nisupdkeys を使用してディレクトリオブジェクト内の古い公開鍵を更新できます。
1 台の特定サーバーの鍵を更新する
NIS+ ディレクトリオブジェクトをサポートしているサーバーすべての鍵を更新する
サーバーの公開鍵をディレクトリオブジェクトから削除する
サーバーの IP アドレスが変更された場合にそれを更新する
しかしながら、nisupdkeys は主体ワークステーション上の NIS_COLD_START ファイルを更新できません。サーバーの鍵のコピーを更新するには、NIS+ クライアントが nisclient コマンドを実行しなければなりません。もしくは、NIS+ キャッシュマネージャを実行中でかつコールドスタートファイル内で1つ以上のサーバーを利用できる場合、主体はディレクトリオブジェクト上で生存期間がタイムアウトするまで待つことができます。タイムアウトが発生すると、キャッシュマネージャはコールドスタートファイルを自動的に更新します。生存期間のデフォルトは 12 時間です。
nisupdkeys を使うには、NIS+ ディレクトリオブジェクトへの変更権が必要です。
nisupdkeys コマンドは /usr/lib/nis にあります。nisupdkeys コマンドは次の引数を使います。nisupdkeys コマンドの詳細と引数すべてのリストは、nisupdkeys(1M) のマニュアルページを参照してください。
表 8-4 nisupdkeys の引数
引数 |
Effect |
---|---|
(引数なし) |
カレントドメインのサーバーの鍵をすべて更新する |
ディレクトリ名 |
ディレクトリ名で指定したディレクトリオブジェクトの鍵を更新する |
-H サーバー名 |
カレントドメインディレクトリオブジェクト内のサーバー名で指定したサーバーの鍵を更新する。他のドメインにあるサーバーの鍵を更新する場合は、完全ホスト名を使用する |
-s -H サーバー名 |
サーバー名で指定したサーバーで保管されたディレクトリオブジェクトすべての鍵を更新する |
-C |
鍵をクリアする |
表 8-5 で公開鍵の更新手順の例を示します。
表 8-5 公開鍵の更新: コマンド例
タスク |
コマンド |
---|---|
カレントドメイン (doc.com) のすべてのサーバーのすべての鍵を更新 |
rootmaster# /usr/lib/nis/nisupdkeys Fetch Public key for server rootmaster.doc.com. netname='unix.rootmaster@doc.com' Updating rootmaster.doc.com.'s public key. Public key: public-key |
sales.doc.com ドメインのディレクトリオブジェクトをサポートしているすべてのサーバーの鍵を更新 |
salesmaster# nisupdkeys sales.doc.com (画面上には何も通知されません。) |
すべてのディレクトリ内のサーバー名が master7 であるサーバーの鍵を更新 |
rootmaster# nisupdkeys -H master7 |
sales.doc.com ディレクトリオブジェクトで保管された鍵をクリア |
rootmaster# nisupdkeys -C sales.doc.com |
カレントドメインのディレクトリオブジェクトのサーバー名が master7 であるサーバーの鍵をクリア |
rootmaster# nisupdkeys -C -H master7 |
サーバーの IP アドレスを変更するか、またはアドレスを追加する場合、NIS+ アドレス情報を更新するために nisupdkeys を実行する必要があります。
1 つ以上のサーバーの IP アドレスを更新するには、-a オプション付きで nisupdkeys を使用します。
rootmaster# nisupdkeys -a domain
特定サーバーの IP アドレスを更新。
rootmaster# nisupdkeys -a -H server