2.2. Directory Server インスタンス固有のファイルおよびディレクトリー
同じホストで実行されている複数のインスタンスを分離するには、特定のファイルおよびディレクトリーにはインスタンスの名前が含まれます。Directory Server の設定中にインスタンス名を設定します。デフォルトでは、これはドメイン名のないホスト名です。たとえば、完全修飾ドメイン名が server.example.com
の場合、デフォルトのインスタンス名は server
になります。
Directory Server のインスタンス固有のデフォルトファイルおよびディレクトリーの場所を以下に示します。
型 | 場所 |
---|---|
バックアップファイル |
|
設定ファイル |
|
証明書および鍵のデータベース |
|
データベースファイル |
|
LDIF ファイル |
|
ロックファイル |
|
ログファイル |
|
PID ファイル |
|
systemd ユニットファイル |
|
2.2.1. 設定ファイル
各 Directory Server インスタンスは、設定ファイルを /etc/dirsrv/slapd-instance
ディレクトリーに保存します。
Red Hat Directory Server の設定情報は、そのディレクトリー内に LDAP エントリーとして保存されます。そのため、単純に設定ファイルを編集するのではなく、サーバー設定への変更はサーバー自体を使用して実装する必要があります。この設定ストレージの方法の主な利点は、ディレクトリー管理者が LDAP を使用してサーバーを再設定できることです。これにより、ほとんどの設定変更のためにサーバーをシャットダウンする必要がなくなります。
2.2.1.1. Directory Server 設定の概要
Directory Server が設定されると、デフォルト設定が、サブツリー cn=config
のディレクトリー内にある一連の LDAP エントリーとして保存されます。サーバーが起動すると、cn=config
サブツリーの内容は、LDIF 形式のファイル (dse.ldif
) から読み込まれます。dse.ldif
ファイルには、すべてのサーバー設定情報が含まれます。このファイルの最新バージョンは dse.ldif
と呼ばれ、最後の変更前のバージョンは dse.ldif.bak
と呼ばれ、サーバーが正常に起動する最新のファイルが dse.ldif.startOK
と呼ばれます。
Directory Server の機能の多くは、コアサーバーに接続するための個別モジュールとして設計されています。各プラグインの内部設定の詳細は、cn=plugins,cn=config
配下の個別のエントリーに含まれます。たとえば、Telephone 構文プラグインの設定は、以下のエントリーに含まれています。
cn=Telephone Syntax,cn=plugins,cn=config
同様に、データベース固有の設定は以下に保存されます。
cn=ldbm database,cn=plugins,cn=config
(ローカルデータベースの場合) および cn=chaining database,cn=plugins,cn=config
(データベースリンクの場合)
以下の図は、cn=config
ディレクトリー情報ツリー内で設定データがどのように適合するかを示しています。
図2.1 設定データを示すディレクトリー情報ツリー
![cfgdit1](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Configuration_Command_and_File_Reference-ja-JP/images/83bcb21213ab56c005920f73439de68c/cfgdit1.png)
2.2.1.1.1. LDIF およびスキーマ設定ファイル
Directory Server の設定データは、/etc/dirsrv/slapd-instance
ディレクトリーの LDIF ファイルに保存されます。そのため、サーバー識別子が phonebook
で、Directory Server の場合は、設定 LDIF ファイルはすべて /etc/dirsrv/slapd-phonebook
の下に保存されます。
このディレクトリーには、他のサーバーインスタンス固有の設定ファイルも含まれます。
スキーマ設定は LDIF 形式でも保存され、これらのファイルは /etc/dirsrv/schema
ディレクトリーに置かれます。
以下の表は、Directory Server で提供されるすべての設定ファイルを表しています。その設定ファイルには、他の互換性のあるサーバーのスキーマも含まれます。各ファイルの前には、読み込む順序を示す番号が付いています (数値の昇順、次にアルファベットの昇順)。
設定ファイル名 | 目的 |
---|---|
dse.ldif |
サーバーの起動時にディレクトリーによって作成されたフロントエンドのディレクトリー固有のエントリーが含まれます。これには、Root DSE ( |
00core.ldif |
最低限の機能セット (ユーザースキーマなし、コア以外の機能のスキーマなし) でサーバーを起動するために必要なスキーマ定義のみが含まれます。ユーザー、機能、およびアプリケーションが使用するその他のスキーマは |
01common.ldif |
|
05rfc2247.ldif | RFC 2247 、および Using Domains in LDAP/X500 Distinguished Names.の関連コレクションスキーマのスキーマ。 |
05rfc2927.ldif |
RFC 2927 からのスキーマ MIME Directory Profile for LDAP Schema。 |
10presence.ldif | レガシー。インスタントメッセージングプレゼンス (オンライン) 情報のスキーマ。このファイルには、ユーザーがインスタントメッセージングプレゼンス情報を利用できるようにするためにユーザーのエントリーに追加する必要のある、許可された属性を持つデフォルトのオブジェクトクラスがリスト表示されます。 |
10rfc2307.ldif |
RFC 2307 からのスキーマ LDAP をネットワーク情報サービスとして使用するためのアプローチ。これは、そのスキーマが使用可能になる |
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 コンソールフレームワークに共通するオブジェクトクラスおよび属性が含まれるスキーマ。 |
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 レプリケーションコンシューマーによって維持されるユーザー定義のスキーマ。 |
2.2.1.1.2. サーバー設定の組織化方法
dse.ldif
ファイルには、データベースに関連するエントリーなど、サーバーの起動時にディレクトリー固有のエントリーを含むすべての設定情報が含まれます。このファイルには、root Directory Server エントリー (または ""
という名前の DSE) と cn=config
および cn=monitor
のコンテンツが含まれます。
サーバーが dse.ldif
ファイルを生成すると、エントリーが cn=config
の下のディレクトリーに表示される順番にリスト表示されます。これは、ベース cn=config
のサブツリースコープの LDAP 検索の順序と同じです。
dse.ldif
には cn=monitor
エントリーも含まれています。このエントリーは主に読み取り専用ですが、ACI を設定できます。
dse.ldif
ファイルには、cn=config
のすべての属性は含まれません。管理者によって属性が設定されておらず、デフォルト値がある場合は、サーバーはその属性を dse.ldif
に書き込みません。cn=config
のすべての属性を表示するには、ldapsearch
を使用します。
設定属性
設定エントリー内では、各属性は属性名として表されます。属性の値は属性の設定に対応します。
以下のコード例は、Directory Server の 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
これらの属性の一部はすべてのプラグインに共通するものであり、特定のプラグインに固有の場合もあります。cn=config
サブツリーで ldapsearch
を実行して、特定のプラグインで現在使用されている属性を確認します。
Directory Server がサポートするプラグイン、一般的なプラグイン設定情報、プラグイン設定属性の参照、および設定変更に必要なプラグインのリストは、4章プラグイン実装サーバー機能リファレンス を参照してください。
データベースの設定
データベースプラグインエントリーの cn=UserRoot
サブツリーには、セットアップ時に作成されたデフォルトの接尾辞を含むデータベースの設定データが含まれます。
これらのエントリーとその子には、キャッシュサイズ、インデックスファイルおよびトランザクションログへのパス、監視および統計情報のためのエントリーおよび属性など、さまざまなデータベース設定を設定するために使用される多くの属性があります。
インデックスの設定
インデックスの設定情報は、以下の information-tree ノード配下の 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
一般インデックスの詳細は、Red Hat Directory Server 管理ガイドを参照してください。インデックス設定属性の詳細は、「cn=config,cn=ldbm database,cn=plugins,cn=config 下のデータベース属性」 を参照してください。
2.2.1.2. サーバー設定へのアクセスおよび変更
このセクションでは、設定エントリーのアクセス制御について説明し、サーバー設定を表示および変更できる各種の方法を説明します。また、変更を有効にするためにサーバーを再起動する必要がある属性に加え、変更の種類に制限についても扱います。
2.2.1.2.1. 設定エントリーのアクセス制御
Directory Server がインストールされると、cn=config
下のすべてのエントリーに対して、デフォルトのアクセス制御命令 (ACI) が実装されます。以下のコードサンプルは、これらのデフォルト ACI の例です。
aci: (targetattr = "*")(version 3.0; acl "Local Directory Administrators Group"; allow (all) groupdn = "ldap:///ou=Directory Administrators,dc=example,dc=com";)
これらのデフォルト ACI により、以下のユーザーがすべての LDAP 操作がすべての設定属性に対して実行できます。
- Configuration Administrators グループのメンバー
-
管理者として機能するユーザーは、セットアップで設定した
admin
アカウントです。デフォルトでは、これはコンソールにログインしているユーザーアカウントと同じです。 - ローカルの Directory Administrators グループのメンバー。
-
SIE (Server Instance Entry) グループは、通常
Set Access Permissions
プロセスを使用してメインコンソールに割り当てられます。
アクセス制御の詳細は、Red Hat Directory Server 管理ガイドを参照してください。
2.2.1.2.2. 設定属性の変更
サーバー属性は、3 つの方法 (Directory Server コンソール、ldapsearch
コマンドおよび ldapmodify
コマンドの実行、または dse.ldif
ファイルの手動編集) のいずれかで表示および変更できます。
dse.ldif
ファイルを編集する前にサーバーを停止する 必要 があります。それ以外の場合は、変更が失われます。dse.ldif
ファイルの編集は、動的に変更できない属性の変更のみに推奨されます。詳細は サーバー再起動を必要とする設定変更 を参照してください。
次のセクションでは、LDAP を使用して (Directory Server Console とコマンドラインの両方を使用して) エントリーを変更する方法、エントリーの変更に適用される制限、属性の変更に適用される制限、および再起動が必要な設定の変更を説明します。
LDAP を使用した設定エントリーの変更
ディレクトリーの設定エントリーは、Directory Server Console を使用するか、他のディレクトリーエントリーと同じ方法で ldapsearch
操作および ldapmodify
操作を実行して LDAP を使用して検索および変更できます。LDAP を使用してエントリーを変更する利点は、サーバーの実行中に変更可能です。
詳細は、Red Hat Directory Server 管理ガイドのディレクトリーエントリーの作成の章を参照してください。ただし、特定の変更を考慮するには、サーバーを再起動する必要があります。詳細は サーバー再起動を必要とする設定変更 を参照してください。
設定ファイルセットと同様に、Directory Server 機能に影響を与えるリスクがあるため、cn=config
サブツリーのノードを変更または削除する場合には注意が必要です。
常にデフォルト値を取る属性を含む設定全体を表示するには、cn=config
サブツリーの ldapsearch
操作を実行します。
# ldapsearch -D "cn=Directory Manager" -W -p 389 -h server.example.com -b "cn=config" -s sub -x "(objectclass=*)"
-
bindDN は、サーバーのインストール時に Directory Manager に対して選択される DN です (デフォルトでは
cn=Directory Manager
)。 - Password は、Directory Manager に選択されるパスワードです。
プラグインを無効にするには、ldapmodify
を使用して nsslapd-pluginEnabled
属性を編集します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=Telephone Syntax,cn=plugins,cn=config changetype: modify replace: nsslapd-pluginEnabled nsslapd-pluginEnabled: off
設定エントリーおよび属性を変更する制限
サーバーエントリーおよび属性を変更する場合、特定の制限が適用されます。
-
The
cn=monitor
エントリーとその子エントリーは読み取り専用で、ACI の管理以外は変更できません。 -
cn=config
に属性が追加されると、サーバーは属性を無視します。 - 属性に無効な値が入力されると、サーバーはそれを無視します。
-
ldapdelete
はエントリー全体を削除するために使用されているため、ldapmodify
を使用してエントリーから属性を削除します。
サーバー再起動を必要とする設定変更
サーバーの実行中に一部の設定属性を変更することはできません。このような場合、変更を反映するには、サーバーをシャットダウンして再起動する必要があります。この変更は、Directory Server コンソールを使用するか、手動で dse.ldif
ファイルを編集して行う必要があります。変更を反映するためにサーバーを再起動する必要がある属性の一部を以下に示します。このリストは網羅的ではありません。完全なリストを表示するには、ldapsearch
を実行し、nsslapd-requiresrestart
属性を検索します。以下に例を示します。
# ldapsearch -D "cn=Directory Manager" -W -p 389 -h server.example.com -b "cn=config" -s sub -x "(objectclass=*)" | grep nsslapd-requiresrestart
|
|
|
|
|
|
|
|
|
|
| nsslapd-securePort |
|
|
|
|
|
|
|
|
|
|
|
|
| |
[a]
この属性には再起動が必要ですが、検索では返されません。
|
設定属性の削除
/etc/dirsrv/slapd-instance-name/dse.ldif
ファイルに書き込まれていない場合でも、コア設定属性はすべてサーバーで使用されるデフォルト値を持つためにあります。
コア設定属性と削除できない属性のリストの詳細は、Red Hat Directory Server 管理ガイドの該当するセクションを参照してください。
2.2.2. データベースファイル
各 Directory Server インスタンスには、すべてのデータベースファイルを保存する /var/lib/dirsrv/slapd-instance/db
ディレクトリーが含まれます。以下は、/var/lib/dirsrv/slapd-instance/db
ディレクトリーの内容のサンプルです。
例2.1 データベースディレクトリーの内容
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
ディレクトリーの内容の例です。
例2.2 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 のリストが含まれます。
2.2.3. LDIF ファイル
LDIF ファイルの例は、LDIF 関連のファイルを保存する /var/lib/dirsrv/slapd-instance/ldif
ディレクトリーに保存されます。例2.3「LDIF ディレクトリーの内容」 は、/ldif
ディレクトリーの内容をリスト表示します。
例2.3 LDIF ディレクトリーの内容
European.ldif Example.ldif Example-roles.ldif Example-views.ldif
-
European.ldif
: ヨーロッパの文字サンプルが含まれます。 -
example.ldif
: LDIF ファイルのサンプルです。 -
example-roles.ldif
:Example.ldif
と同様に LDIF ファイルの例です。ただし、ディレクトリー管理者にアクセス制御およびリソース制限を設定するグループの代わりに、サービスのロールとクラスを使用する点が異なります。
インスタンスディレクトリーの db2ldif
スクリプトまたは db2ldif.pl
スクリプトがエクスポートした LDIF ファイルは、/var/lib/dirsrv/slapd-instance/ldif
に保存されます。
2.2.4. ロックファイル
各 Directory Server インスタンスには、ロック関連のファイルを保存する /var/lock/dirsrv/slapd-instance
ディレクトリーが含まれます。以下は、locks
ディレクトリーのコンテンツのリスト表示例です。
例2.4 ディレクトリーコンテンツのロック
exports/ imports/ server/
ロックメカニズムは、Directory Server プロセスのコピーを 1 つで実行できる数を制御します。たとえば、インポートジョブがある場合は、ロックが imports/
ディレクトリーに格納され、他の ns-slapd
(通常)、ldif2db
(他のインポート)、または db2ldif
(エクスポート) の操作が実行されないようにします。サーバーが通常通りに実行されている場合は、server/
ディレクトリーにロックがあり、インポート操作は妨げられ (エクスポート操作は妨げられない)、エクスポート操作がある場合、exports/
ディレクトリーのロックは、通常のサーバー操作を許可しますが、インポート操作を防ぎます。
利用可能なロックの数は、Directory Server の全体的なパフォーマンスに影響を及ぼす可能性があります。ロックの数は、nsslapd-db-locks
属性に設定されます。属性値の調整については、パフォーマンスチューニングガイドを参照してください。
2.2.5. ログファイル
各 Directory Server インスタンスには、ログファイルを保存する /var/log/dirsrv/slapd-instance
ディレクトリーが含まれます。以下は、/logs
ディレクトリーの内容をリスト表示した例です。
例2.5 ログディレクトリーのコンテンツ
access access.20200228-171925 errors access.20200221-162824 access.rotationinfo errors.20200221-162824 access.20200223-171949 audit errors.rotationinfo access.20200227-171818 audit.rotationinfo slapd.stats
-
access
、audit
、およびerror
のログファイルの内容は、ログ設定によって異なります。 -
slapd.stats
ファイルはメモリーにマッピングされたファイルで、エディターで読み込むことができません。これには、Directory Server SNMP データ収集コンポーネントによって収集されるデータが含まれます。このデータは SNMP 属性クエリーに対応して SNMP サブエージェントによって読み取られ、Directory Server SNMP 要求を処理する SNMP マスターエージェントと通信します。
7章ログファイルのリファレンス アクセス、エラー、監査ログファイル形式の概要と、それらの情報を説明します。
2.2.6. PID ファイル
slapd-serverID.pid
ファイルおよび slapd-serverID.startpid
ファイルは、サーバーの稼働時に /var/run/dirsrv
ディレクトリーに作成されます。どちらのファイルもサーバーのプロセス ID を保存します。
2.2.7. バックアップファイル
各 Directory Server インスタンスには、バックアップ関連のファイルを保存するための以下のディレクトリーとファイルが含まれます。
-
/var/lib/dirsrv/slapd-instance/bak
: これには、インスタンス、データベースバックアップの日時 (例:インスタンスの-2020_05_02_16_56_05/
など) がデータベースのバックアップのコピーを保持します。 -
/etc/dirsrv/slapd-instance/dse_original.ldif
: これは、インストール時からのdse.ldif
設定ファイルのバックアップコピーです。