i试图使用命令(下面的LDAP响应)添加此架构:
$ ldapadd -x -D cn=admin,cn=config -w password -H ldap://ldap-server -f myschema.ldif
adding new entry "cn=myschema,cn=schema,cn=config"
当我尝试检查该模式是否正确添加到LDAP时,OpenDap不回答我,它的存在:
$ ldapsearch -x -D cn=admin,cn=config -w config -H ldap://ldap-server -b cn=schema,cn=config "(cn=myschema)"
# extended LDIF
#
# LDAPv3
# base <cn=schema,cn=config> with scope subtree
# filter: (cn=myschema)
# requesting: ALL
#
# search result
search: 2
result: 0 Success
# numResponses: 1
怎么了?
一些精确度:密码也不错,LDAP的URL也是如此。当我在LDAP中搜索用户时,我得到了我期望的响应。提前三
OpenDAP“ config”后端在通常会订购的条目或属性方面具有特殊的行为:它会自动为相应值添加
{xx}
前缀。例如,代表架构或数据库的条目自动从
cn=foo
cn={3}foo
重命名。这将与
(cn=*foo)
相匹配,但不与(cn=foo)
。
$ ldapsearch -b cn=schema,cn=config dn | grep ^dn
SASL/GSSAPI authentication started
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}ldapns,cn=schema,cn=config
dn: cn={5}kerberos,cn=schema,cn=config
dn: cn={6}misc,cn=schema,cn=config
dn: cn={7}sudo,cn=schema,cn=config
dn: cn={8}samba,cn=schema,cn=config
dn: cn={9}nullroute,cn=schema,cn=config
dn: cn={10}sudo,cn=schema,cn=config
(教训是,如果确切的搜索不匹配任何内容,则应尝试INEXACT
搜索 - 例如,未经过滤的搜索或GUI工具(例如Apache Directory Studio) - 并使用您的眼睛抓住结果。)相同,适用于
olcAttributeTypes
和相似的值。 LDAP通常不会保留属性顺序,因此OpenLDAP Config Backend将添加行号以实现这一目标。