我正在尝试设置 OpenLDAP。我在 OLC 配置选项方面遇到了麻烦,因此我选择了 slapd.conf 样式输入,因为我对 LDAP 完全是菜鸟,而且它更容易理解。
我现在需要使用 OLC 配置选项,所以我正在尝试转换。我可以使用以下命令正确转换
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown ldap:ldap -R /etc/openldap/slapd.d
一切启动并正常工作,一切顺利。但是,我似乎无法cn=config
使用 ldapsearch 进行访问。我尝试使用以下方法进行匿名访问:
ldapsearch -x -D -b 'cn=config' '(objectclass=*)'
返回32 No such object
我很想知道我在这里做错了什么。
这是我的(现已过时并已转换) slapd.conf 文件:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
moduleload memberof.so
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to dn.base="ou=users,dc=example,dc=com" filter=(objectclass=organizationalUnit)
by dn.subtree="ou=sysusers,dc=example,dc=com" read
by users read
access to dn.children="ou=users,dc=example,dc=com" filter=(objectclass=inetOrgPerson) attrs=uid,memberOf,entry,objectClass
by dn.subtree="ou=sysusers,dc=example,dc=com" read
by self write
access to dn.children="ou=users,dc=example,dc=com" filter=(objectclass=inetOrgPerson) attrs=mail,cn
by dn.base="cn=owncloud,ou=sysusers,dc=example,dc=com" read
by self write
access to dn.base="dc=example,dc=com"
by users read
access to *
by self write
by anonymous auth
database hdb
suffix "dc=example,dc=com"
checkpoint 32 30
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}redactedredactedredacted
directory /var/lib/openldap-data
index objectClass eq
loglevel 4
overlay memberof
database config
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * read
我是设置 ldap 服务器的新手,所以如果我问了愚蠢的问题,请原谅。
答案1
事实证明,当 slapd.d 目录已经充满内容时,尝试使用 slaptest 生成该目录不会生成新目录。我上面发布的示例 slapd.conf 实际上并未转换为 slapd.d。
一旦我删除了 slapd.d 并再次运行所有内容,一切就都顺利了。