【问题标题】:Creating second database/domain in OpenLDAP在 OpenLDAP 中创建第二个数据库/域
【发布时间】:2015-06-17 17:27:55
【问题描述】:

我有一个以"dc=domain1,dc=com" 作为 olcSuffix 的 LDAP 服务器。我想在同一台服务器上创建第二个域"dc=domain2,dc=com"

使用此 LDIF 文件:

dn: olcDatabase={3}bdb 对象类:olcDatabaseConfig 对象类:olcBdbConfig olc 数据库:{3}bdb olc后缀:dc=domain2,dc=com ...

我收到一个错误: "no global superior knowledge" error because dc=domain2,dc=com does not fit below the existing dc=domain1,dc=com tree.

我的问题是如何在 openldap 中并排运行两个单独的域?我是否必须创建一个 "dc=com" 根并将现有的 "dc=domain1" 移动到其下方,然后创建 "dc=domain2",或者是否有办法在同一服务器中独立支持这两种树?

【问题讨论】:

    标签: admin openldap


    【解决方案1】:

    据我所知,一个 OpenLDAP 服务器可以有多个 DIT。我想你想要的是添加一个新的 DIT。

    要添加新的 DIT,您应该这样做:

    1. 为它创建一个目录,并设置权限。

    2. 向 OpenLDAP 服务器添加配置。

    3. 添加条目和 RootDN。

    我现在使用 Ubuntu 14.04.3 LTS,OpenLDAP 2.4.31(apt-get 安装),如果你不使用 root 帐户,某些命令可能需要 sudo。

    首先,为新数据库创建目录

    root@hare:~/ldap# mkdir /var/lib/ldap-bdb
    root@hare:~/ldap# chown openldap:openldap /var/lib/ldap-bdb
    root@hare:~/ldap# vim /etc/apparmor.d/usr.sbin.slapd
    # the databases and logs
    /var/lib/ldap-bdb/ r,
    /var/lib/ldap-bdb/** rwk,
    
    # lock file
    /var/lib/ldap-bdb/alock kw,
    
    root@hare:~/ldap# service apparmor reload
    

    二、配置cn=config

    检查模块

    root@hare:~/ldap# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b 'cn=config' "(objectClass=olcModuleList)"
    dn: cn=module{0},cn=config
    objectClass: olcModuleList
    cn: module{0}
    olcModulePath: /usr/lib/ldap
    olcModuleLoad: {0}back_hdb
    olcModuleLoad: {1}back_mdb
    

    如果 back_bdb 没有加载:

    # file load_bdb.ldif
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: back_bdb
    
    root@hare:~/ldap# ldapmodify -Y EXTERNAL -H ldapi:/// -f load_bdb.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "cn=module{0},cn=config"
    

    检查后端

    root@hare:~/ldap# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b 'cn=config' "(objectClass=olcBackendConfig)"
    dn: olcBackend={0}hdb,cn=config
    objectClass: olcBackendConfig
    olcBackend: {0}hdb
    
    dn: olcBackend={1}mdb,cn=config
    objectClass: olcBackendConfig
    olcBackend: {1}mdb
    

    如果没有 bdb 后端

    # file backend_bdb.ldif
    dn: olcBackend=bdb,cn=config
    changetype: add
    objectClass: olcBackendConfig
    olcBackend: bdb
    
    root@hare:~/ldap# ldapmodify -Y EXTERNAL -H ldapi:/// -f backend_bdb.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "olcBackend=bdb,cn=config"
    

    生成密码(此处密码为 123456)

    root@hare:~/ldap# slappasswd -h {SSHA}
    New password:
    Re-enter new password:
    {SSHA}e8xGdXmL+mSD3u/389YHeM+dpqFCUSyq
    

    在cn=config中配置数据库

    # file domain2_conf.ldif
    dn: olcDatabase=bdb,cn=config
    changetype: add
    objectClass: olcDatabaseConfig
    objectClass: olcBdbConfig
    olcDbDirectory: /var/lib/ldap-bdb/
    olcDatabase: bdb
    olcDbIndex: objectClass eq
    olcLastMod: TRUE
    olcMonitoring: TRUE
    olcDBNoSync: TRUE
    olcSuffix: dc=domain2,dc=com
    olcAccess: to dn.base="" by * read
    olcAccess: to * by dn="cn=admin,dc=domain2,dc=com" write by * read
    olcRootDN: cn=admin,dc=domain2,dc=com
    olcRootPW: {SSHA}e8xGdXmL+mSD3u/389YHeM+dpqFCUSyq
    
    root@hare:~/ldap# ldapmodify -Y EXTERNAL -H ldapi:/// -f domain2_conf.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "olcDatabase=bdb,cn=config"
    

    添加数据库 DIT

    # file domain2_db.ldif
    dn: dc=domain2,dc=com
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    dc: domain2
    o: Example Corporation
    description: The Example Corporation
    
    dn: cn=admin,dc=domain2,dc=com
    objectClass: simpleSecurityObject
    objectClass: organizationalRole
    cn: admin
    userPassword: {SSHA}e8xGdXmL+mSD3u/389YHeM+dpqFCUSyq
    description: Directory Manager
    
    root@hare:~/ldap# ldapadd -x -D "cn=admin,dc=domain2,dc=com" -w 123456 -f domain2_db.ldif
    adding new entry "dc=domain2,dc=com"
    
    adding new entry "cn=admin,dc=domain2,dc=com"
    

    现在,您可以访问新的 DIT(我使用 LDAP Admin)

    【讨论】:

    • “最后,英语不是我的第一语言,我的英语不是很好。”无论如何,答案非常好。非常感谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2018-09-21
    • 2020-11-15
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多