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
属性设置为,从而启用了架构检查。
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 服务器插件功能的每个部分的配置在 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 服务器当前使用哪些属性,请在 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.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。 -
CamelAwsS.db
.包含具有特定对象类的 ID 列表。 -
parentid.db
.包含用于查找父级 ID 的 ID 列表。