本篇整理一下OpenLDAP 2.4的配置。 OpenLDAP 2.4有两种配置方式:
- 通过配置文件
slapd.conf进行配置,这是旧版本的配置方式 - 通过修改配置数据库(cn=config),这是新的推荐的配置方式
这里我们学习cn=config的方式。cn=config实际上是将slapd.conf中的内容转换成ldif格式,并组成以cn=config为根的目录树,这棵树会有很多节点,如下图所示:

cn=config节点是Global config options。
cn=module{0}节点是动态加载的模块,只有在用--enable-modules选项配置的软件才会使用。
cn=schema节点,cn=schema,cn=config条目包含了系统的schema定义。cn=schema,cn=config的子条目包含的是从配置文件加载或在运行时加载的用户的schema。
配置cn=config是一种动态配置的方式,不需要重启slapd进程。可以在/etc/openldap/slapd.d目录下找到文本格式的ldif文件:
tree slapd.d/
slapd.d/
├── cn=config
│ ├── cn=schema
│ │ ├── cn={0}core.ldif
│ │ ├── cn={10}openldap.ldif
│ │ ├── cn={11}pmi.ldif
│ │ ├── cn={12}ppolicy.ldif
│ │ ├── cn={1}collective.ldif
│ │ ├── cn={2}corba.ldif
│ │ ├── cn={3}cosine.ldif
│ │ ├── cn={4}duaconf.ldif
│ │ ├── cn={5}dyngroup.ldif
│ │ ├── cn={6}inetorgperson.ldif
│ │ ├── cn={7}java.ldif
│ │ ├── cn={8}misc.ldif
│ │ └── cn={9}nis.ldif
│ ├── cn=schema.ldif
│ ├── olcDatabase={0}config.ldif
│ ├── olcDatabase={-1}frontend.ldif
│ ├── olcDatabase={1}monitor.ldif
│ └── olcDatabase={2}hdb.ldif
└── cn=config.ldif我们在前面时使用ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done命令导入了用户schema,可以看到在cn=schema,cn=config下。