1.2. Directory Server インスタンス固有のファイルおよびディレクトリー

同じホストで実行されている複数のインスタンスを分離するには、特定のファイルおよびディレクトリーにはインスタンスの名前が含まれます。Directory Server のセットアップ中にインスタンス名を設定します。デフォルトでは、これはドメイン名のないホスト名です。たとえば、完全修飾ドメイン名が server.example.com の場合、デフォルトのインスタンス名は server になります。

Directory Server のインスタンスに依存しないデフォルトのファイルおよびディレクトリーの場所は次のとおりです。

場所

バックアップファイル

/var/lib/dirsrv/slapd-instance_name/bak/

設定ファイル

/etc/dirsrv/slapd-instance_name/

証明書および鍵のデータベース

/etc/dirsrv/slapd-instance_name/

データベースファイル

/var/lib/dirsrv/slapd-instance_name/db/

LDIF ファイル

/var/lib/dirsrv/slapd-instance_name/ldif/

ロックファイル

/var/lock/dirsrv/slapd-instance_name/

ログファイル

/var/log/dirsrv/slapd-instance_name/

PID ファイル

/var/run/dirsrv/instance_name.pid

systemd ユニットファイル

/etc/systemd/system/dirsrv.target.wants/dirsrv@instance_name.service

1.2.1. 設定ファイル

各 Directory Server インスタンスは、設定ファイルを /etc/dirsrv/slapd-instance_name_/ ディレクトリーに保存します。

Red Hat Directory Server の設定情報は、そのディレクトリー内に LDAP エントリーとして保存されます。したがって、サーバー設定の変更は、設定ファイルを編集するのではなく、サーバーを介して行う必要があります。設定ストレージの主な利点は、ディレクトリー管理者がサーバーの実行中に LDAP を使用してサーバーを再設定できることです。これにより、ほとんどの設定変更のためにサーバーをシャットダウンする必要がなくなります。

1.2.2. Directory Server 設定の概要

Directory Server をセットアップすると、サーバーは、cn=config サブツリーのディレクトリー内にある一連の LDAP エントリーとしてデフォルト設定を保存します。サーバーを起動すると、サーバーは LDIF 形式の dse.ldif ファイルから cn=config サブツリーの内容を読み取ります。dse.ldif ファイルにはすべてのサーバー設定情報が含まれ、次の名前が付けられます。

  • dse.ldif。このファイルの最新バージョン。
  • dse.ldif.bak。最終変更前のバージョン。
  • dse.ldif.startOK。サーバーが正常に起動した最新のファイル。

Directory Server の大部分の機能は、コアサーバーに接続するための個別モジュールとして設計されています。各プラグインの内部設定の詳細は、cn=plugins,cn=config サブツリー配下の個別のエントリーに含まれます。たとえば、Telephone Syntax プラグインの設定は、cn=Telephone Syntax,cn=plugins,cn=config に含まれています。

同様に、データベース固有の設定は、cn=ldbm database,cn=plugins,cn=config (ローカルデータベースの場合) および cn=chaining database,cn=plugins,cn=config (データベースリンクの場合) に保存されます。

次の図は、設定データが cn=config ディレクトリーツリーの下でどこに配置されるかを示しています。

図1.1 設定データのサブツリー

設定データのサブツリー

dc\3Dexample\2Cdc\3Dcom は、エスケープ文字を含む DN dc=example,dc=com を表します。

1.2.2.1. LDIF およびスキーマ設定ファイル

Directory Server は、設定データを /etc/dirsrv/slapd-instance_name ディレクトリーの LDIF ファイルに保存します。サーバー名が phonebook の場合、Directory Server では、設定 LDIF ファイルはすべて /etc/dirsrv/slapd-phonebook の下に保存されます。

このディレクトリーには、他のサーバーインスタンス固有の設定ファイルも含まれます。

スキーマ設定も、次のディレクトリーに LDIF 形式で保存されます。

  • /etc/dirsrv/instance_name/schema/ (インスタンス固有のスキーマ)。
  • /usr/share/dirsrv/schema/ (デフォルトのスキーマ)。
  • /etc/dirsrv/schema/ (デフォルトのスキーマをオーバーライドするスキーマ)。
注記

以前は、スキーマ設定ファイルは /etc/dirsrv/schema ディレクトリーにのみ保存されていました。

以下の表は、Directory Server で提供される設定ファイルのリストです。その設定ファイルには、互換性のあるサーバーのスキーマも含まれます。各ファイルの前には、ロードする順序を示す番号が付いています (数値の昇順、次にアルファベットの昇順)。

表1.1 Directory Server LDIF 設定ファイル

設定ファイル名目的

dse.ldif

サーバーの起動時にディレクトリーによって作成されたフロントエンドのディレクトリー固有のエントリー (DSE) が含まれます。このエントリーには、Root DSE ("") および cn=config および cn=monitor の内容が含まれます (ACI のみ)。

00core.ldif

最小限の機能セット (ユーザースキーマなし、コア以外の機能のスキーマなし) でサーバーを起動するために必要なスキーマ定義 (subschemaSubentry など) が含まれます。このファイルは変更しないでください。

ユーザー、機能、およびアプリケーションによって使用されるその他のスキーマは、02common.ldif ファイルおよびその他のスキーマファイルにあります。

02common.ldif

02common.ldif ファイルには次のものが含まれます。

  • LDAPv3 標準操作スキーマ (subschemaSubentry など)。
  • RFC 2256 (X.520/X.521 に基づく) で定義された LDAPv3 標準ユーザーおよび組織スキーマ。
  • inetOrgPerson およびその他の広く使用されている属性。
  • Directory Server 設定が使用する操作属性。

このファイルを変更すると、相互運用性の問題が発生します。ユーザー定義の属性は、Directory Server Web コンソールから追加する必要があります。

05rfc2247.ldif

RFC 2247 のスキーマ (Using Domains in LDAP/X500 Distinguished Names) および関連パイロットスキーマ。

05rfc2927.ldif

RFC 2927 のスキーマ (MIME Directory Profile for LDAP Schema)。subschema サブエントリーに表示する属性に必要な ldapSchemas 操作属性が含まれます。

06inetorgperson.ldif

01core389.ldif スキーマおよび inetOrgPerson 属性が含まれます。

10presence.ldif

レガシー。インスタントメッセージングのプレゼンス (オンライン) 情報のスキーマ。このファイルには、ユーザーがインスタントメッセージングのプレゼンス情報を利用できるようにするためにユーザーのエントリーに追加する必要のある、許可された属性を持つデフォルトのオブジェクトクラスがリスト表示されます。

10rfc2307.ldif

RFC 2307 のスキーマ (An Approach for Using LDAP as a Network Information Service)。

rfc2307 の新しいバージョンである 10rfc2307bis スキーマが利用可能になると、10rfc2307.ldif スキームに取って代わる可能性があります。

20subscriber.ldif

新しいスキーマ要素と Nortel サブスクライバーの相互運用性仕様が含まれています。以前は 50ns-delegated-admin.ldif ファイルに保存されていた、adminRole 属性、memberOf 属性、および inetAdmin オブジェクトクラスが含まれます。

25java-object.ldif

RFC 2713 のスキーマ (Schema for Representing Java® Objects in an LDAP Directory)。

28pilot.ldif

RFC 1274 のパイロットディレクトリースキーマが含まれていますが、これは新しいデプロイメントには推奨されなくなりました。RFC 1274 の後継となる将来の RFC では、28pilot.ldif スキーマの属性タイプとクラスの一部またはすべてが非推奨になる可能性があります。

30ns-common.ldif

Directory Server Web コンソールフレームワークに共通のオブジェクトクラスと属性を含むスキーマ。

50ns-admin.ldif

Red Hat 管理サーバーによって使用されるスキーマ。

50ns-certificate.ldif

Red Hat Certificate Management System のスキーマ。

50ns-directory.ldif

Directory Server 4.12 以前のバージョンのディレクトリーで使用される追加の設定スキーマが含まれていますが、これは Directory Server の現在のリリースには適用されなくなりました。このスキーマは、Directory Server 4.12 と現在のリリース間のレプリケーションに必要です。

50ns-mail.ldif

メールサーバーがメールユーザーおよびメールグループを定義するのに Netscape Messaging Server が使用するスキーマ。

50ns-value.ldif

サーバーの値のアイテム属性のスキーマ。

50ns-web.ldif

Netscape Web Server のスキーマ。

60pam-plugin.ldif

将来の使用のために予約されています。

99user.ldif

Directory Server レプリケーションコンシューマーが維持するユーザー定義のスキーマ。このスキーマには、サプライヤーからの属性とオブジェクトクラスが含まれています。

1.2.2.2. dse.ldif サーバー設定ファイル

dse.ldif ファイルには、サーバーの起動時にディレクトリーが作成するディレクトリー固有のエントリー (DSE) (データベースに関連するエントリーなど) を含むすべての設定情報が含まれます。このファイルには、root Directory Server エントリー (または "" で指定された Root DSE) と cn=config サブツリーの内容が含まれます。

サーバーは、dse.ldif ファイルを生成すると、cn=config の下のディレクトリーに表示される順序でエントリーをリスト表示します。この順序は通常、ベース cn=config のサブツリースコープの LDAP 検索でエントリーが返される順序と同じです。

dse.ldif ファイルには cn=monitor エントリーも含まれています。このエントリーは主に読み取り専用ですが、ACI を設定できます。

注記

dse.ldif ファイルには、cn=config エントリーのすべての属性は含まれません。管理者が属性を設定せず、デフォルト値が設定されている場合、サーバーはこの属性を dse.ldif ファイルに書き込みません。cn=config エントリー内のすべての属性を表示するには、ldapsearch ユーティリティーを使用します。

設定属性

`cn=config" などの各設定エントリーには、このエントリーに設定された属性と値のペアが含まれています。

dse.ldif ファイルの次のサンプル部分は、nsslapd-schemacheck 属性を on に設定することで、スキーマチェックが有効になったことを示しています。

dn: cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsslapdConfig
nsslapd-accesslog-logging-enabled: on
nsslapd-enquote-sup-oc: off
nsslapd-localhost: phonebook.example.com
nsslapd-schemacheck: on
nsslapd-port: 389
nsslapd-localuser: dirsrv
...

プラグイン機能の設定

Directory Server プラグイン機能の各設定には、独自のエントリーと、サブツリー cn=plugins,cn=config 下の属性セットがあります。

次の例は、Telephone Syntax プラグインの設定例を示しています。

dn: cn=Telephone Syntax,cn=plugins,cn=config
objectclass: top
objectclass: nsSlapdPlugin
objectclass: extensibleObject
cn: Telephone Syntax
nsslapd-pluginType: syntax
nsslapd-pluginEnabled: on

プラグイン設定には、すべてのプラグインに共通の属性と、当該プラグインに固有の属性が含まれます。Directory Server が現在使用している属性を確認するには、cn=config サブツリーで ldapsearch コマンドを実行します。

サポートされているプラグインとその設定情報の詳細は、プラグイン実装サーバー機能リファレンス を参照してください。

データベースの設定

cn=UserRoot,cn=ldbm database,cn=plugins,cn=config サブツリーには、セットアップ中に Directory Server が作成するデフォルトの接尾辞を含むデータベースの設定データが含まれます。

cn=UserRoot サブツリーとその子には、キャッシュサイズ、インデックスファイルおよびトランザクションログへのパス、監視および統計情報のためのエントリーおよび属性、ならびにデータベースインデックスなど、さまざまなデータベース設定に使用される多くの属性があります。

インデックスの設定

インデックス設定情報は、Directory Server のエントリーとして以下のサブディレクトリーに保存されます。

  • cn=index,cn=UserRoot,cn=ldbm database,cn=plugins,cn=config
  • cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config

インデックスに関する一般的な情報については、インデックスの管理 のドキュメントを参照してください。

インデックス設定属性の詳細は、cn=config,cn=ldbm database,cn=plugins,cn=config 下のデータベース属性 を参照してください。

1.2.3. データベースファイル

各 Directory Server インスタンスには、すべてのデータベースファイルを保存する /var/lib/dirsrv/slapd-instance/db ディレクトリーが含まれます。/var/lib/dirsrv/slapd-instance/db ディレクトリーの内容のサンプルを以下に示します。

データベースディレクトリーの内容

db.001 db.002  __db.003  DBVERSION  log.0000000001  userroot/

  • db.00x ファイル。データベースが内部的に使用します。これらのファイルはいかなる方法でも移動、削除、または変更しないでください。
  • log.xxxxxxxxxx ファイル。データベースごとのトランザクションログを保存するために使用します。
  • DBVERSION。データベースのバージョンを保存するために使用します。
  • userRoot。セットアップ時に作成されるユーザー定義の接尾辞 (ユーザー定義のデータベース) を保存します。たとえば、dc=example,dc=com を保存します。
注記

ディレクトリーツリーを新しい接尾辞で保存する新規データベース (例: testRoot) を作成すると、testRoot という名前のディレクトリーも /var/lib/dirsrv/slapd-instance/db ディレクトリーに表示されます。

以下は、userRoot ディレクトリーの内容の例です。

userroot データベースディレクトリーの内容

ancestorid.db
DBVERSION
entryrdn.db
id2entry.db
nsuniqueid.db
numsubordinates.db
objectclass.db
parentid.db

userroot サブディレクトリーには以下のファイルが含まれます。

  • ancestorid.db。エントリーの先祖の ID を検索する ID のリストが含まれます。
  • entrydn.db。ID を検索する完全な DN のリストが含まれます。
  • id2entry.db。実際のディレクトリーデータベースエントリーが含まれます。他のすべてのデータベースファイルは、必要に応じてこのデータベースファイルから再作成できます。
  • nsuniqueid.db。ID を検索する一意の ID のリストが含まれます。
  • numsubordinates.db。子エントリーを持つ ID が含まれます。
  • objectclass.db。特定のオブジェクトクラスを持つ ID のリストが含まれます。
  • parentid.db。親の ID を検索する ID のリストが含まれます。