JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 でのネームサービスおよびディレクトリサービスの作業     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

パート I ネームサービスとディレクトリサービスについて

1.  ネームサービスとディレクトリサービス (概要)

2.  ネームサービススイッチ (概要)

3.  DNS の管理 (タスク)

4.  Oracle Solaris Active Directory クライアントの設定 (タスク)

パート II NIS の設定と管理

5.  ネットワーク情報サービス (概要)

6.  NIS の設定と構成 (タスク)

7.  NIS の管理 (タスク)

パスワードファイルと名前空間のセキュリティー

NIS ユーザーの管理

NIS ドメインに新しい NIS ユーザーを追加する方法

ユーザーパスワードの設定

NIS ネットグループ

NIS マップに関する作業

マップ情報の取得

マップのマスターサーバーの変更

マップのマスターサーバーを変更する方法

構成ファイルの変更

構成ファイルを更新する方法

/var/yp/Makefile の変更および使用

Makefile での作業

Makefile のマクロおよび変数の変更

Makefile エントリの変更

特定のデータベースを使用するように /var/yp/Makefile を変更する方法

データベースを削除するために Makefile を変更する方法

既存のマップの更新

デフォルトセットに付いているマップを更新する方法

更新されたマップの管理

NIS マップを伝播する

マップ転送のための cron コマンドの使用

cronypxfr でのシェルスクリプトの使用

ypxfr コマンドの直接の起動

ypxfr のアクティビティーのロギング

デフォルト以外のマップの変更

デフォルト以外のマップを変更するための makedbm コマンドの使用

テキストファイルからの新しいマップの作成

ファイルをベースとしたマップにエントリを追加する

標準入力からマップを作成する

標準入力から作成されたマップを更新する

NIS サーバーの操作

特定の NIS サーバーへのバインド

マシンの NIS ドメイン名を設定する方法

NIS と DNS を使用してマシンのホスト名とアドレスの検索を構成する方法

NIS サービスをオフにする

8.  NIS のトラブルシューティング

パート III LDAP ネームサービス

9.  LDAP ネームサービスの紹介 (概要)

10.  LDAP ネームサービスの計画要件 (タスク)

11.  LDAP クライアントと Oracle Directory Server Enterprise Edition の設定 (タスク)

12.  LDAP クライアントの設定 (タスク)

13.  LDAP のトラブルシューティング (リファレンス)

14.  LDAP ネームサービス (リファレンス)

15.  NIS から LDAP への移行 (タスク)

用語集

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

既存のマップの更新

NIS のインストール終了後、頻繁に更新しなければならないマップとまったく更新する必要がないマップがあることに気づく場合があります。たとえば、大企業のネットワークでは passwd.byname マップが頻繁に変更される場合があるのに対して、auto_master マップはほとんど変更されません。

「デフォルトの NIS マップ」で説明されているように、デフォルトの NIS マップのデフォルトの場所は、マスターサーバー上の /var/yp/domainname 内にあります。ここで、domainname は NIS ドメインの名前です。マップを更新する必要がある場合は、マップがデフォルトのマップか否かによって 2 つの更新手順のどちらかを使用できます。

このセクションでは、さまざまな更新ツールの使用方法について説明します。これらは実際には、システムがすでに起動され、実行されたあとにデフォルト以外のマップを追加したり、NIS サーバーのセットを変更したりする場合にのみ使用するようになる可能性があります。

デフォルトセットに付いているマップを更新する方法

デフォルトセットに付属のマップを更新するには、次の手順を使用します。

  1. NIS マスターサーバー上の管理者になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. 変更するマップのソースファイルを編集します。

    このファイルは /etc か、または選択したほかのディレクトリ内に存在する可能性があります。

  3. make コマンドを実行します。
    # cd /var/yp
    # make mapname

    これにより、make コマンドは、対応するファイルに加えられた変更に従ってマップを更新します。make コマンドはまた、これらの変更をほかのサーバーに伝播します。

更新されたマップの管理

以降のセクションでは、デフォルトセットで提供されているマップの更新完了後に実行する手順について説明します。

NIS マップを伝播する

マップが変更されたあと、Makefileyppush を使用して、新しいマップをスレーブサーバーに伝播します (MakefileNOPUSH が設定されていないかぎり)。これは、ypserv デーモンに通知してマップ転送要求を送ることで実行されます。次に、スレーブ上の ypserv デーモンが ypxfr プロセスを起動し、このプロセスがさらにマスターサーバー上の ypxfrd デーモンに接続します。いくつかの基本的なチェック (たとえば、マップが実際に変更されたかどうか) が行われたあと、そのマップが転送されます。そのあと、スレーブ上の ypxfryppush プロセスに、転送が成功したかどうかを示す応答を送信します。


注 - 上の手順は、まだスレーブサーバー上に存在しない新しく作成されたマップに対しては機能しません。スレーブサーバー上で ypxfr を実行して、新しいマップをスレーブサーバーに転送する必要があります。


ときには、マップの伝播に失敗し、ypxfr を使用して新しいマップ情報を手動で送信することが必要になる場合があります。ypxfr は、rootcrontab ファイルを通して定期的に使用するか、またはコマンド行で対話的に使用するかの 2 つの異なる方法を選択できます。これらの方法については、以降のセクションで説明します。

マップ転送のための cron コマンドの使用

マップの更新頻度はマップによってそれぞれ異なります。たとえば、デフォルトのマップにある protocols.byname や、デフォルト以外のマップにある auto_master など、一部のマップは何か月も変更されないことがあります。一方で、passwd.byname は 1 日に数回変更される場合があります。crontab コマンドを使用してマップ転送をスケジュールすると、個々のマップごとに特定の伝播回数を設定できます。

マップに適した頻度で ypxfr を定期的に実行するには、各スレーブサーバー上の root の crontab ファイルに適切な ypxfr エントリを含めるようにしてください。ypxfr はマスターサーバーに接続し、マスターサーバー上のコピーがローカルのコピーより新しい場合にのみマップを転送します。


注 - マスターサーバーでデフォルトの -m オプションを指定して rpc.yppasswdd が実行されると、だれかが自分の yp パスワードを変更するたびに passwd デーモンが make を実行し、それによって passwd マップが再構築されます。


cronypxfr でのシェルスクリプトの使用

NIS 管理者は、各マップに対する crontab エントリを個々に作成するという方法ではなく、root の crontab コマンドでシェルスクリプトを実行してすべてのマップを定期的に更新するという方法を使用することもできます。マップ更新シェルスクリプトのサンプルは、/usr/lib/netsvc/yp ディレクトリに入っています。これらのスクリプト名は、ypxfr_1perdayypxfr_1perhour、および ypxfr_2perday です。これらのシェルスクリプトは、サイトの要件に合うように変更したり、置き換えたりすることができます。次の例は、デフォルトの ypxfr_1perday シェルスクリプトを示しています。

例 7-1 ypxfr_1perday シェルスクリプト

#! /bin/sh
#
# ypxfr_1perday.sh - Do daily yp map check/updates
PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH
export PATH
# set -xv
ypxfr group.byname
ypxfr group.bygid
ypxfr protocols.byname
ypxfr protocols.bynumber
ypxfr networks.byname
ypxfr networks.byaddr
ypxfr services.byname
ypxfr ypservers

このシェルスクリプトは、root の crontab が毎日実行される場合は 1 日に 1 回マップを更新します。また、1 週間に 1 回、1 か月に 1 回、1 時間に 1 回などの頻度でマップを更新するスクリプトを作成することもできます。ただし、マップを頻繁に伝播するとパフォーマンスが低下する可能性があることに注意してください。詳細は、crontab(1) のマニュアルページを参照してください。

NIS ドメイン用に構成された各スレーブサーバー上で root として同じシェルスクリプトを実行します。各サーバー上の実行時間を変更して、マスターサーバーが動作不能にならないようにしてください。

特定のスレーブサーバーからマップを転送する場合は、シェルスクリプト内で ypxfr-h machine オプションを使用します。シェルスクリプトに記述するコマンドの構文は、次のとおりです。

# /usr/lib/netsvc/yp/ypxfr -h machine [ -c ] mapname

machine は転送するマップが存在するサーバー名です。mapname は要求されたマップ名です。マシンを指定することなく -h オプションを指定すると、ypxfr はマスターサーバーからマップを取得しようとします。ypxfr 実行時に ypserv がローカルに実行されていない場合は、ypxfr がローカル ypserver に現在のマップ要求の取消しを送信しないよう、-c フラグを使用してください。

-s domain オプションを使用すると、別のドメインからローカルドメインにマップを転送できます。これらのマップは、ドメイン間で同じである必要があります。たとえば、2 つのドメインで同じ services.byname および services.byaddr マップを共有する可能性があります。あるいは、より細かく制御するために、rcp または rsync を使用してドメイン間でファイルを転送することもできます。

ypxfr コマンドの直接の起動

ypxfr コマンドの 2 番目の起動方法は、コマンドとしての実行です。一般に、ypxfr をコマンドとして実行するのは例外的状況においてだけです。たとえば、一時的に NIS サーバーを設定して試験環境を作成する場合や、動作不能になっていた NIS サーバーをほかのサーバーと迅速に整合させようとする場合などです。

ypxfr のアクティビティーのロギング

ypxfr が試みた転送およびその転送結果は、ログファイルに記録されます。/var/yp/ypxfr.log というファイルが存在する場合は、転送結果はこのファイルに記録されます。このログファイルのサイズには制限がありません。このログファイルのサイズが無限に大きくなることを防止するには、ときどき次のように入力してこのログファイルを空にしてください。

# cd /var/yp
# cp ypxfr.log ypxfr.log.old
# cat /dev/null > /var/yp/ypxfr.log

これらのコマンドは、crontab で 1 週間に 1 回実行させることができます。記録を取らないようにするには、ログファイルを削除してください。

デフォルト以外のマップの変更

デフォルト以外のマップを更新するには、次の手順を実行する必要があります。

  1. 対応するテキストファイルを作成または編集します。

  2. 新しいマップまたは更新されたマップを作成 (または再作成) します。マップ作成には 2 つの方法があります。

    • Makefile を使用する方法。デフォルトでないマップを作成するには、この方法をお勧めします。Makefile にマップのエントリが含まれている場合は、make name を実行します。ここで、name は構築するマップの名前です。Makefile にマップのエントリが含まれていない場合は、/var/yp/Makefile の変更および使用」の手順に従って、そのエントリの作成を試みます。

    • /usr/sbin/makedbm プログラムを使用します。このコマンドについては、makedbm(1M) のマニュアルページで詳細に説明されています。

デフォルト以外のマップを変更するための makedbm コマンドの使用

入力ファイルが存在しない場合、makedbm を使用してマップを変更する方法には次の 2 種類があります。

テキストファイルからの新しいマップの作成

テキストファイル /var/yp/mymap.asc がマスターサーバー上のエディタまたはシェルスクリプトで作成されていると仮定します。このファイルから NIS マップを作成し、それを home-domain サブディレクトリ内に配置しようとしています。マスターサーバー上で次のように入力してください。

# cd /var/yp
# makedbm mymap.asc home-domain/mymap

mymap マップは現在、マスターサーバー上のディレクトリ home-domain 内に存在します。この新しいマップをスレーブサーバーに転送するには、ypxfr を実行してください。

ファイルをベースとしたマップにエントリを追加する

mymap へのエントリの追加は簡単です。まず、テキストファイル /var/yp/mymap.asc を更新します。対応するテキストファイルを更新しないで実際のdbmファイルを更新した場合は、更新内容が失われます。次に、上記のように makedbm を実行してください。

標準入力からマップを作成する

元のテキストファイルが存在しない場合は、次のように makedbm へ入力することによって、キーボードから NIS マップを作成します (Control-D で終了します)。

ypmaster# cd /var/yp
ypmaster# makedbm home-domain/mymap key1 value1 key2 value2 key3 value3

標準入力から作成されたマップを更新する

あとでマップを変更する必要がある場合は、makedbm を使用してマップを分解し、一時的な中間テキストファイルを作成することができます。マップを分解して一時ファイルを作成するには、次のように入力します。

% cd /var/yp
% makedbm -u homedomain/mymap > mymap.temp

作成される一時ファイル mymap.temp には、1 行に 1 つのエントリが含まれています。このファイルは、任意のテキストエディタで必要に応じて編集できます。

マップを更新するには、次のように入力して、変更された一時ファイルの名前を makedbm に指定します。

% makedbm mymap.temp homedomain/mymap
% rm mymap.temp

次に、root になり、次のように入力して、マップをスレーブサーバーに伝播します。

# yppush mymap

前の段落では、makedbm を使用してマップを作成する方法について説明しました。ただし、システムがすでに起動され、実行されたあとにデータベースにデフォルト以外のマップを追加したり、NIS サーバーのセットを変更したりしないかぎり、ypinit コマンドと /var/yp/Makefile を使用することによって、実際に必要なほぼすべてのことを実行できます。

/var/yp 内の Makefile を使用するか、またはほかの何らかの手順を使用するかにかかわらず、その目的は同じです。最終的には、正しく作成された dbm ファイルの新しいペアが、マスターサーバー上の maps ディレクトリ内に存在する必要があります。