具有两个 DIT 的 LDAP 设置

具有两个 DIT 的 LDAP 设置

我有一个 openLDAP,它有一个数据库dc=domain1,dc=com

现在我正尝试再添加 1 个dc=domain2,dc=com

以下是我们为实现这一目标所采取的步骤,

[root@host user]#  service slapd stop
Stopping slapd:                                            [  OK  ]
[root@ host user  ]# slapadd -f /etc/openldap/slapd.conf -l  /tmp/domain2.ldif -S 001 -w
5ccd948f bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
slapadd: line 1: database #1 (dc=domain1,dc=com) not configured to hold "dc=domain2,dc=com"; no database configured for that naming context
_#########             46.62% eta   none elapsed            none spd 935.8 k/s
Closing DB...
[root@ host user  ]#  service slapd start
Starting slapd:                                            [  OK  ]  

有人可以建议我该怎么做吗?

这是我的 domain2.ldif 内容:

dn: dc=domain2,dc=com
changetype: add
objectclass: top
objectclass: organization

dn: dc=mobileauth,dc=domain2,dc=com
changetype: add
objectclass: top
objectclass: dcObject 

答案1

每个 OpenLDAP 后端都附加到特定的“后缀”,因此托管具有不同 DN 后缀的多个 DIT 需要配置多个后端数据库。例如:

database mdb
    suffix "dc=domain1,dc=com"
    directory "/var/lib/openldap/domain1"
    index and other settings...

database mdb
    suffix "dc=domain2,dc=com"
    directory "/var/lib/openldap/domain2"
    ...

如果您使用 cn=config,这相当于有多个“olcDatabase”条目,例如:

dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDbDirectory: /var/lib/ldap/domain1
olcSuffix: dc=domain1,dc=org
olcVariousOtherStuff...

dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDbDirectory: /var/lib/ldap/domain2
olcSuffix: dc=domain2,dc=org
...

当使用slap*命令(slapadd、slapcat 等)时,您需要明确选择数据库(cn=config 是 #0,因此您的数据库可能从 #1 开始):

slapcat -n 1
slapcat -n 2

slapcat -b dc=domain1,dc=org
slapcat -b dc=domain2,dc=org

相关内容