1.2. 特定于目录服务器实例的文件和目录
为了分隔在同一主机上运行的多个实例,某些文件和目录包含实例的名称。您可以在 Directory 服务器设置过程中设置实例名称。默认情况下,这是没有域名的主机名。例如,如果您的完全限定域名是 server.example.com,则默认实例名称为 server。
独立于实例的默认文件和目录位置包括:
| 类型 | 位置 |
|---|---|
| 备份文件 |
|
| 配置文件 |
|
| 证书和密钥数据库 |
|
| 数据库文件 |
|
| LDIF 文件 |
|
| 锁定文件 |
|
| 日志文件 |
|
| PID 文件 |
|
| systemd 单元文件 |
|
1.2.1. 配置文件 复制链接链接已复制到粘贴板!
每个目录服务器实例将其配置文件存储在 /etc/dirsrv/slapd-instance_name_/ 目录中。
Red Hat Directory Server 的配置信息作为 LDAP 条目存储在 目录中。因此,您必须通过服务器更改服务器配置,而不是编辑配置文件。配置存储的主要优点是,目录管理员可以在服务器仍在运行时使用 LDAP 重新配置服务器,避免需要关闭服务器以进行大多数配置更改。
1.2.2. 目录服务器配置概述 复制链接链接已复制到粘贴板!
当设置 Directory 服务器时,服务器会将默认配置存储为目录中的一系列 LDAP 条目,位于 cn=config 子树下。当您启动服务器时,服务器会从 dse.ldif 文件中读取 cn=config 子树的内容,该文件采用 LDIF 格式。dse.ldif 文件包含所有服务器配置信息,并具有以下名称:
-
se.ldif.此文件的最新版本。 -
dse.ldif.bak.最后一次修改前的版本。 -
dse.ldif.startOK.服务器成功启动的最新文件。
目录服务器的大部分功能都设计为插入到核心服务器的离散模块。每个插件的内部配置的详情包含在 cn=plugins,cn=config sub-tree 下的单独条目中。例如,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 值代表 dc=example,dc=com DN,带有转义的字符。
1.2.2.1. LDIF 和模式配置文件 复制链接链接已复制到粘贴板!
目录服务器将配置数据存储在 /etc/dirsrv/slapd-instance_name 目录中的 LDIF 文件中。如果服务器名称为 phonebook,则对于目录服务器,则配置 LDIF 文件都存储在 /etc/dirsrv/slapd-phonebook 下。
此目录还包含其他特定于服务器实例的配置文件。
模式配置也以 LDIF 格式存储在以下目录中:
-
/etc/dirsrv/instance_name/schema/用于实例特定 schema。 -
/usr/share/dirsrv/schema/用于默认模式。 -
/etc/dirsrv/schema/用于覆盖默认模式的架构。
在以前的版本中,模式配置文件仅存储在 /etc/dirsrv/schema 目录中。
下表列出了提供给 Directory 服务器的配置文件,包括用于兼容服务器模式的配置文件。每个文件前面都有一个数字,它指示应该加载的顺序(以数字顺序排列,然后按字母顺序排列)。
| 配置文件名称 | 用途 |
|---|---|
| dse.ldif |
包含服务器启动时由 目录创建的前端目录特定条目(DSE)。条目包括 Root DSE ( |
| 00core.ldif |
包含 schema 定义,如
用户、特性和应用程序使用的其余架构位于 02common.ldif 文件中,其他架构文件位于 |
| 02common.ldif |
修改文件会导致互操作性问题。您必须通过 Directory Server web 控制台 添加用户定义的属性。 |
| 05rfc2247.ldif | 来自 RFC 2247 的 schema,在 LDAP/X500 辨识名称中使用域,以及相关的 pilot 模式。 |
| 05rfc2927.ldif |
RFC 2927, MIME Directory Profile for LDAP Schema 的 schema。包含要在 |
| 06inetorgperson.ldif |
包含 |
| 10presence.ldif | 传统.schema 用于即时消息存在(online)信息。文件列出了具有必须添加到用户条目中允许的属性的默认对象类,才能为该用户提供即时消息存在信息。 |
| 10rfc2307.ldif | RFC 2307 中的模式,一种将 LDAP 用作网络信息服务的方法。
当该模式可用时, |
| 20subscriber.ldif |
包含新的模式元素和 Nortel 订阅者互操作性规格。还包含 |
| 25java-object.ldif | RFC 2713 中的模式,用于代表 LDAP 目录中的 Java® 对象。 |
| 28pilot.ldif |
包含 RFC 1274 中的 pilot 目录模式,在新部署时不再推荐使用。成功 RFC 1274 的未来 RFC 可能会弃用某些或所有 |
| 30ns-common.ldif | 包含目录服务器 Web 控制台框架通用的对象类和属性的 schema。 |
| 50ns-admin.ldif | 红帽管理服务器使用的模式. |
| 50ns-certificate.ldif | Red Hat Certificate Management System 的 schema。 |
| 50ns-directory.ldif | 包含目录服务器 4.12 和较早版本的目录使用的额外配置模式,它们不再适用于目录服务器的当前版本。这个模式是在 Directory Server 4.12 和当前版本之间的复制。 |
| 50ns-mail.ldif | Netscape Messaging 服务器用来定义邮件用户和邮件组的 schema。 |
| 50ns-value.ldif | schema 用于 servers 值项目属性。 |
| 50ns-web.ldif | Netscape Web 服务器的 schema。 |
| 60pam-plugin.ldif | 保留供以后使用。 |
| 99user.ldif | 目录服务器复制消费者维护的用户定义的模式。该架构包含供应商的属性和对象类。 |
1.2.2.2. dse.ldif 服务器配置文件 复制链接链接已复制到粘贴板!
dse.ldif 文件包含所有配置信息,包括服务器启动时由目录创建的目录特定条目(DSE),如与数据库相关的条目。该文件包含根目录服务器条目(或 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 属性设置为,从而启用了架构检查。
配置插件功能
Directory 服务器插件功能的每个部分的配置在 cn=plugins,cn=config 子树下都有自己的独立条目和属性集。
以下示例显示了 Telephone Syntax 插件的示例配置。
插件配置包含对特定于此插件的所有插件和属性通用的属性。要检查 Directory 服务器当前使用哪些属性,请在 cn=config 子树上运行 ldapsearch 命令。
有关支持的插件及其配置信息的更多信息,请参阅 插件实现服务器功能参考。
配置数据库
cn=UserRoot,cn=ldbm database,cn=plugins,cn=config 子树包含包含默认后缀 Directory 服务器在设置过程中创建的数据库的配置数据。
cn=UserRoot 子树及其子项有许多属性,用来配置不同的数据库设置,如缓存大小、索引文件和事务日志的路径、用于监控和统计信息的条目和属性,以及数据库索引。
配置索引
索引配置信息作为在以下子目录下的 Directory 服务器中的条目保存:
-
cn=index,cn=UserRoot,cn=ldbm database,cn=plugins,cn=config -
cn=default index,cn=config,cn=ldbm database,cn=plugins,cn=config
有关索引的常规信息,请参阅管理索引 文档。
有关索引配置属性的信息,请参阅 cn=config,cn=ldbm database,cn=plugins,cn=config下的数据库属性。
1.2.3. 数据库文件 复制链接链接已复制到粘贴板!
每个目录服务器实例都包含用于存储所有数据库文件的 /var/lib/dirsrv/slapd-instance/db 目录。/var/lib/dirsrv/slapd-instance/db 目录内容列表示例如下所示。
数据库目录内容
db.001 db.002 __db.003 DBVERSION log.0000000001 userroot/
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 数据库目录内容
userroot 子目录包含以下文件:
-
ancestorid.db.包含 ID 列表,用于查找条目上级的 ID。 -
entrydn.db.包含可用于查找任何 ID 的完整 DN 列表。 -
id2entry.db.包含实际目录数据库条目。如果需要,可以从此重新创建所有其他数据库文件。 -
nsuniqueid.db.包含用来查找任何 ID 的唯一 ID 列表。 -
numsubordinates.db.包含具有子条目的 ID。 -
CamelAwsS.db.包含具有特定对象类的 ID 列表。 -
parentid.db.包含用于查找父级 ID 的 ID 列表。