Openldap-无法识别的对象类‘olcOverlayConfig’

Openldap-无法识别的对象类‘olcOverlayConfig’

我想配置我的覆盖策略,当我尝试使用 ldapadd 添加以下配置时,slapd 返回

objectClass:值 #0 根据语法无效

dn: olcOverlay=ppolicy,olcDatabase={2}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: olcPpolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=domain,dc=tld
olcPPolicyUseLockout: TRUE
olcPPolicyHashCleartext: TRUE

此外,当我尝试slapadd

(65)无法识别的对象类‘olcOverlayConfig’

但是,这个对象类存在于我的模式中:

ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b “cn=schema,cn=config” -s base | grep olcOverlayConfig

olcObjectClasses: ( OLcfgGlOc:5 NAME 'olcOverlayConfig' DESC 'OpenLDAP Overlay onfiguration' SUP olcOverlayConfig STRUCTURAL MUST olcAccessLogDB MAY ( olcAc figuration' SUP olcOverlayConfig STRUCTURAL MAY olcAuditlogFile ) overlay configuration' SUP olcOverlayConfig STRUCTURAL MAY olcConstraintAttr ation' SUP olcOverlayConfig STRUCTURAL MAY ( olcMemberOfDN $ olcMemberOfDangl cy configuration' SUP olcOverlayConfig STRUCTURAL MAY ( olcPPolicyDefault $ o

我不明白这个错误。

答案1

我解决了我的问题。我使用的是 Fedora 28 Server,openldap 的版本是 2.4.46-1。我认为考虑到所使用的 objectClass,它是由硬编码模式提供的,因此我将服务器升级到 Fedora 29,其版本为 2.4.46-9。

我保存了 /etc/openldap/slapd.d 文件夹以及位于 /var/lib/ldap 中的数据库文件,然后删除了这些文件。当然,守护进程 slapd 已停止。

我从 slapd.ldif 重建了所有内容slapadd -n 0 -F /etc/openldap/slapd.d -f slapd.ldif,其中 slapd.ldif 已包含 ppolicy.la 模块和 ldif 架构。
然后,我启动服务并输入命令ldapadd -Y EXTERNAL -H ldapi:/// -f ppolicy_config.ldif,这一次,命令执行良好。

我没有找到问题的根本原因,也许我遗漏了一些东西(但我没看到什么)或者软件包中有 bugopenldap 服务器来自存储库 Fedora 28。

相关内容