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

NIS+ から LDAP への移行の概要

NIS+ サーバーデーモン rpc.nisd は、/var/nis/data ディレクトリにある独自フォーマットのファイルに NIS+ データを保存します。NIS+ データは、LDAP と同期化することができます。従来は、そのために外部エージェントが必要でした。しかし、新しい NIS+ デーモンでは、LDAP サーバーを NIS+ データのデータリポジトリとして使用できるようになりました。これにより、NIS+ および LDAP クライアントが同一のネームサービス情報を共有できるため、メインネームサービスを NIS+ から LDAP に移行する作業がより簡単になりました。

デフォルトの rpc.nisd デーモンは、従来と同様に機能し、/var/nis/data の NIS+ データベースにデータを格納します。システム管理者は、必要に応じて、NIS+ データベースの一部の権限を LDAP サーバーに譲渡し、NIS+ データのリポジトリとして使用することができます。この場合、/var/nis/data ファイルは rpc.nisd デーモンのキャッシュとして機能するため、LDAP 検索トラフィックが減少します。また、LDAP サーバーが一時的に使用できなくなった場合でも、rpc.nisd デーモンは動作を継続できます。NIS+ および LDAP は常に同期化されるだけでなく、NIS+ および LDAP 間でデータをアップロードまたはダウンロードすることができます。

LDAP に対するデータのマッピングは、構成ファイルの柔軟な構文を使用して行います。client_info.org_dir および timezone.org_dir 以外のすべての標準 NIS+ テーブルは、テンプレートマッピングファイル /var/nis/NIS+LDAPmapping.template で対応できます。ほとんどの NIS+ インストールのテーブルは、変更する必要がないか、わずかな変更で済みます(client_info および timezone テーブル (NIS+ から LDAP への移行)」 timezone.org_dir については、client_info and timezone Tables (NIS+ to LDAP)を参照)。NIS+ データは、LDAP ディレクトリ情報ツリー (DIT) に配置されます。また、マッピングファイルでは、LDAP から入力された NIS+ データに対して生存期間 (TTL) を設定できます。多くの場合、NIS+ 列値および LDAP 属性値は 1 対 1 で対応づけられますが、マッピングファイルはより複雑な関係にも対応できます。

/etc/default/rpc.nisd ファイルは、LDAP サーバーと認証を選択するときに使用し、rpc.nisd の一般的な動作をいくつか制御します。rpc.nisd(4) を参照してください。マッピングの詳細は、/var/nis/NIS+LDAPmapping ファイル内で指定します。詳細については、NIS+LDAPmapping(4) のマニュアルページを参照してください。マッピングファイルの名前を変更するときは、/lib/svc/method/nisplus ファイルを編集します。詳細については、「NIS+ から LDAP への移行用ツールとサービス管理機能」を参照してください。

この章では、次の用語を使用します。

rpc.nisd 構成ファイル

2 つの構成ファイルを使用して、rpc.nisd 処理を制御します。

構成とは、値を定義済みの属性に割り当てることです。構成ファイル以外に、構成属性を LDAP から読み取ることもできます (「構成情報を LDAP に格納する」を参照)。また、rpc.nisd コマンドの -x オプションに構成属性を指定することもできます。複数の場所で同じ属性が指定されている場合、優先順位 (高から低) は次のとおりです。

  1. rpc.nisd -x オプション

  2. 構成ファイル

  3. LDAP

NIS+ から LDAP への移行用ツールとサービス管理機能

NIS+ から LDAP への移行に関連するコマンド行管理タスクの大部分は、サービス管理機能によって管理されます。SMF の概要については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。また、詳細については、svcadm(1M) および svcs(1) のマニュアルページを参照してください。

NIS+ から LDAP への移行で SMF を使用しない場合

通常、/usr/sbin/rpc.nisd デーモンは、svcadm コマンドを使用して管理します。ただし、rpc.nisd デーモンは、-x nisplusLDAPinitialUpdateOnly=yes を指定して起動すると、指定された初期更新アクションを実行して終了します。つまり、rpc.nisd はデーモン化されません。-x nisplusLDAPinitialUpdateOnly=yes を指定した上で、サービス管理機能を使用してはなりません。それ以外の場合で、rpc.nisd デーモンを起動、停止または再起動するときにはいつでも SMF を使用できます。

次の例は、-x nisplusLDAPinitialUpdateOnly=yes を指定した rpc.nisd です。


# /usr/sbin/rpc.nisd -m mappingfile \
-x nisplusLDAPinitialUpdateAction=from_ldap \
-x nisplusLDAPinitialUpdateOnly=yes

/lib/svc/method/nisplus ファイルの変更

rpc.nisd デーモンをサービス管理機能によって起動するときに特定のオプションを含める場合、svcprop コマンドを使用するか、/lib/svc/method/nisplus ファイルを変更できます。svcprop コマンドの使用方法の詳細については、svcprop(1) のマニュアルページを参照してください。/lib/svc/method/nisplus ファイルを変更する手順を次に示します。

Procedure/lib/svc/method/nisplus ファイルの変更方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の第 9 章「役割によるアクセス制御の使用 (手順)」を参照してください。

  2. NIS+ サービスを停止します。


    # svcadm disable network/rpc/nisplus:default
    
  3. /lib/svc/method/nisplus ファイルを開きます。

    任意のエディタを使用してください。

  4. ファイルを編集して必要なオプションを追加します。

    変更前:


    if [ -d /var/nis/data -o -d /var/nis/$hostname ]; then
                        /usr/sbin/rpc.nisd || exit $

    変更後:


    if [ -d /var/nis/data -o -d /var/nis/$hostname ]; then
                         /usr/sbin/rpc.nisd -Y -B || exit $?

    この例では、-Y および -B オプションが rpc.nisd に追加され、起動時に自動的に実装されます。

  5. /lib/svc/method/nisplus ファイルを保存して終了します。

  6. NIS+ サービスを開始します。


    # svcadm enable network/rpc/nisplus:default
    

属性とオブジェクトクラスの作成

NIS+ と LDAP のマッピングの構成によっては、新しい LDAP 属性とオブジェクトクラスをいくつか作成しなければならないことがあります。次の例では、これらの作成方法として、ldapadd コマンドの入力として使用できる LDIF データを指定する方法を示します。LDIF データを含むファイルを作成してから、ldapadd(1) を起動します。


# ldapadd -D bind-DN -f ldif -file

この方法は、Sun Java System Directory Server で機能します。また、その他の LDAP サーバーでも機能することがあります。


注 –

ただし、defaultSearchBasepreferredServerList、および authenticationMethod 属性を除き、この章で使用されているオブジェクト識別子 (OID) は、SYNTAX 仕様と同様に、説明用に挙げているだけです。OID の基準はありません。任意の OID を使用できます。