gpt4 book ai didi

admin - 在 OpenLDAP 中创建第二个数据库/域

转载 作者:行者123 更新时间:2023-12-04 01:53:53 26 4
gpt4 key购买 nike

我有一个带有 "dc=domain1,dc=com" 的 LDAP 服务器作为 olcSuffix。我想创建第二个域 "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" ,或者有没有办法在同一台服务器上独立支持两棵树?

最佳答案

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

要添加新的 DIT,您应该:

  • 为它创建一个目录,并设置权限。
  • 向 OpenLDAP 服务器添加配置。
  • 添加条目和 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)

    picture 1
    picture 2

    关于admin - 在 OpenLDAP 中创建第二个数据库/域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30898397/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com