我有 ldif
dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=local
olcPPolicyHashCleartext: TRUE
dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcMemberOf
olcOverlay: {1}memberof
olcMemberOfMemberAD: uniqueMember
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfRefInt: TRUE
我正在尝试使用以下命令配置 ldap 服务器:
ldapadd -Y EXTERNAL -H, ldapi:/// -f /tmp/overlays.ldif
The error I'm getting is:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #3 invalid per syntax
我怀疑这是由于密码不正确,但我无法确定。我在网上搜索的点击量是“value #2”或“value #1”——作为非 ldap 专家,我不知道这是否有什么不同。
谢谢,布鲁斯
这不是一个错误的密码,即
Invalid credentials (49)
.它是
Invalid syntax (21)
。具体来说,在 objectClass 的情况下,您正在尝试使用不存在的 objectClass (olcPPolicyConfig
)。OpenLDAP 计算多属性值,其中 objectClass 是一个,从 0 开始。这意味着您的 ldapadd 看起来像:
olcPPolicyConfig
objectClass 由 libtool 库提供,ppolicy.la
一般需要作为模块加载。对于memberOf
大多数其他叠加层也是如此。您的模块路径可能不同,以上为 CentOS7 的正确路径。