1.2. Directory Server インスタンス固有のファイルおよびディレクトリー
同じホストで実行されている複数のインスタンスを分離するには、特定のファイルおよびディレクトリーにはインスタンスの名前が含まれます。Directory Server のセットアップ中にインスタンス名を設定します。デフォルトでは、これはドメイン名のないホスト名です。たとえば、完全修飾ドメイン名が server.example.com
の場合、デフォルトのインスタンス名は server
になります。
Directory Server のインスタンスに依存しないデフォルトのファイルおよびディレクトリーの場所は次のとおりです。
型 | 場所 |
---|---|
バックアップファイル |
|
設定ファイル |
|
証明書および鍵のデータベース |
|
データベースファイル |
|
LDIF ファイル |
|
ロックファイル |
|
ログファイル |
|
PID ファイル |
|
systemd ユニットファイル |
|
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 ( |
00core.ldif |
最小限の機能セット (ユーザースキーマなし、コア以外の機能のスキーマなし) でサーバーを起動するために必要なスキーマ定義 (
ユーザー、機能、およびアプリケーションによって使用されるその他のスキーマは、 |
02common.ldif |
このファイルを変更すると、相互運用性の問題が発生します。ユーザー定義の属性は、Directory Server Web コンソールから追加する必要があります。。 |
05rfc2247.ldif | RFC 2247 のスキーマ (Using Domains in LDAP/X500 Distinguished Names) および関連パイロットスキーマ。 |
05rfc2927.ldif |
RFC 2927 のスキーマ (MIME Directory Profile for LDAP Schema)。 |
06inetorgperson.ldif |
|
10presence.ldif | レガシー。インスタントメッセージングのプレゼンス (オンライン) 情報のスキーマ。このファイルには、ユーザーがインスタントメッセージングのプレゼンス情報を利用できるようにするためにユーザーのエントリーに追加する必要のある、許可された属性を持つデフォルトのオブジェクトクラスがリスト表示されます。 |
10rfc2307.ldif | RFC 2307 のスキーマ (An Approach for Using LDAP as a Network Information Service)。
|
20subscriber.ldif |
新しいスキーマ要素と Nortel サブスクライバーの相互運用性仕様が含まれています。以前は |
25java-object.ldif | RFC 2713 のスキーマ (Schema for Representing Java® Objects in an LDAP Directory)。 |
28pilot.ldif |
RFC 1274 のパイロットディレクトリースキーマが含まれていますが、これは新しいデプロイメントには推奨されなくなりました。RFC 1274 の後継となる将来の RFC では、 |
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 のリストが含まれます。