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