什么可以使OpenLDAP忽略访问限制?

我正在尝试在Arch Linux上configurationOpenLDAP的新安装(2.6.39)。 我已经使用默认的核心软件包来安装和configuration它,但是我不能让它遵守设置文件中的任何访问控制声明。

我的/etc/openldap/slapd.conf只有这两个声明,我从文档中获得 :

 access to attr=userPassword by self =xw by anonymous auth by * none access to * by self write by users read by * none 

我已经开始正常的服务,大部分似乎工作。 我可以使用pam / nslcdlogin并使用phpldapadmin。 但是,上述访问限制似乎没有工作。 从phpldapadmin我能够看到和更改其他用户的密码字段,我的连接。 使用命令行客户端(裁剪输出)也是如此:

 $ ldapsearch -D 'uid=user2,ou=People,dc=example,dc=com' -w 1234 '(uid=user1)' userPassword:: e1NTSEF9VEZ4K2U1M0JtUEU0NkljdlBPaTBycE41RTh2aXJNeTg= 

正如你所看到的,我使用user2进行身份validation,但是能够查询user1的条目并查看密码字段。

slapd.conf中的其他声明显然是有效的,所以我没有编辑错误的文件或类似的东西。 我已经尝试设置严格的规则,如access to * by * none作为唯一的规则,但仍然能够看到任何用户的目录中的任何东西。 我将访问线放在默认configuration的地方,样例是。

我如何让OpenLDAP真的注意到它的configuration文件中的ACL是忽略它们?

OpenLDAP的大部分configuration(包括ACL)确实属于cn=configconfiguration子树。 你有可能在slapd.conf中覆盖你的语句。 请参阅此文档以阅读有关configurationLDAP服务器的现代方法。

作为一种过渡措施, OpenLDAP的Arch Linux 软件包带有一个slapd.conf文件,但是如果按照wiki上的说明进行操作,则会在设置部分的末尾find自动将其转换为新格式的信息。

注意:对于OpenLDAP 2.4,不推荐使用slapd.config的configuration。 从这个版本的所有configuration设置存储在/etc/openldap/slapd.d/。

要将slapd.conf中的最近更改存储到新的slapd-configconfiguration设置中,我们必须先删除旧的configuration文件:

 # rm -rf /etc/openldap/slapd.d/* 

然后我们生成新的configuration:

 # slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ 

每次更改slapd.conf时都必须运行最后一条命令。

特别注意最后一行。 如果您select以旧格式进行未来configuration更改,则需要每次都进行转换。