加载时 OpenLDAP 密码策略覆盖错误

加载时 OpenLDAP 密码策略覆盖错误

我正在尝试加载密码策略叠加层,但出现以下错误:

ldapadd  -Wx -D "cn=Manager,cn=config"  -f overlay.ldif 
Enter LDAP Password: 
adding new entry "olcOverlay=ppolicy,olcDatabase={0}bdb,cn=config"
ldap_add: No such object (32)
    matched DN: cn=config

这是文件的内容:

dn: olcOverlay=ppolicy,olcDatabase={0}bdb,cn=config
olcOverlay: ppolicy
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcPPolicyDefault: cn=default,ou=Policies,dc=site,dc=com
olcPPolicyHashCleartext: TRUE
olcPPolicyUseLockout: FALSE

在日志中我发现:

config_add_internal: DN="olcOverlay=ppolicy,olcDatabase={0}bdb,cn=config" not child of DN="cn=config"

我使用的是 CentOS 6.3 和 openldap-servers-2.4.23-26.el6_3.2.x86_64。

答案1

cn=configOpenLDAP 数据库中的一些记录使用数字前缀( {0}{1}等)。因此,当您要修改cn=config数据库中的某些内容时,必须确保使用正确的 DN(专有名称:记录的路径)。在 OpenLDAP 中使用时cn=config,第一个 olcDatabase 条目通常是配置数据库本身 ( olcDatabase={0}config,cn=config)。在我的特定系统上,我的主数据库是olcDatabase={1}hdb,cn=config.

如果您不知道需要修改的 DN olcDatabase,唯一知道的方法是进行搜索并查看结果。


至于这些数字({0}位)是什么,它们有两个目的。

  1. 它们允许您拥有多个同名条目。
    您可能有 2 个olcDatabase=bdb数据库,但其中会遇到问题,因为不能有 2 个具有相同 DN 的条目。
  2. 他们允许订购。
    LDAP 协议不关心顺序。但您可以为 RDN 添加前缀以{X}允许排序。在这种特定情况下,我想不出任何需要订购数据库的原因。但还有其他关键用例,例如cn=schema,cn=config.在 中cn=schema,模式可以定义依赖于先前模式的属性的对象类。因此,必须按顺序加载方案。

答案2

olcDatabase={0}bdb,cn=config

需要改为

olcDatabase={2}bdb,cn=config

相关内容