搜索

1.2. 特定于目录服务器实例的文件和目录

download PDF

为了分隔在同一主机上运行的多个实例,某些文件和目录包含实例的名称。您可以在 Directory 服务器设置过程中设置实例名称。默认情况下,这是没有域名的主机名。例如,如果您的完全限定域名是 server.example.com,则默认实例名称为 server

独立于实例的默认文件和目录位置包括:

类型位置

备份文件

/var/lib/dirsrv/slapd-instance_name/bak/

配置文件

/etc/dirsrv/slapd-instance_name/

证书和密钥数据库

/etc/dirsrv/slapd-instance_name/

数据库文件

/var/lib/dirsrv/slapd-instance_name/db/

LDIF 文件

/var/lib/dirsrv/slapd-instance_name/ldif/

锁定文件

/var/lock/dirsrv/slapd-instance_name/

日志文件

/var/log/dirsrv/slapd-instance_name/

PID 文件

/var/run/dirsrv/instance_name.pid

systemd 单元文件

/etc/systemd/system/dirsrv.target.wants/dirsrv@instance_name.service

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 服务器的配置文件,包括用于兼容服务器模式的配置文件。每个文件前面都有一个数字,它指示应该加载的顺序(以数字顺序排列,然后按字母顺序排列)。

表 1.1. 目录服务器 LDIF 配置文件
配置文件名称用途

dse.ldif

包含服务器启动时由 目录创建的前端目录特定条目(DSE)。条目包括 Root DSE ("")和 cn=configcn=monitor (ACIs)的内容。

00core.ldif

包含 schema 定义,如 subschemaSubentry,启动带有最小功能集的服务器(无用户模式,任何非核心功能都没有 schema)。不要修改此文件

用户、特性和应用程序使用的其余架构位于 02common.ldif 文件中,其他架构文件位于 02common.ldif 文件中。

02common.ldif

02common.ldif 文件包含:

  • LDAPv3 标准操作模式,如 subschemaSubentry
  • RFC 2256 中定义的 LDAPv3 标准用户和组织模式(基于 X.520/X.521)。
  • inetOrgPerson 和其他广泛使用的属性。
  • 目录服务器配置使用的操作属性。

修改文件会导致互操作性问题。您必须通过 Directory Server web 控制台 添加用户定义的属性。

05rfc2247.ldif

来自 RFC 2247 的 schema,在 LDAP/X500 辨识名称中使用域,以及相关的 pilot 模式。

05rfc2927.ldif

RFC 2927, MIME Directory Profile for LDAP Schema 的 schema。包含要在 subschema 子条目中显示的属性所需的 ldapSchemas 操作属性。

06inetorgperson.ldif

包含 01core389.ldif 模式和 inetOrgPerson attribite。

10presence.ldif

传统.schema 用于即时消息存在(online)信息。文件列出了具有必须添加到用户条目中允许的属性的默认对象类,才能为该用户提供即时消息存在信息。

10rfc2307.ldif

RFC 2307 中的模式,一种将 LDAP 用作网络信息服务的方法

当该模式可用时,10rfc2307bis 模式( rfc2307 的新版本)可能会取代 10rfc2307.ldif 方案。

20subscriber.ldif

包含新的模式元素和 Nortel 订阅者互操作性规格。还包含 adminRolememberOf 属性和 inetAdmin 对象类,之前存储在 50ns-delegated-admin.ldif 文件中。

25java-object.ldif

RFC 2713 中的模式,用于代表 LDAP 目录中的 Java® 对象

28pilot.ldif

包含 RFC 1274 中的 pilot 目录模式,在新部署时不再推荐使用。成功 RFC 1274 的未来 RFC 可能会弃用某些或所有 28pilot.ldif 模式属性类型和类。

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 列表。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.