2014-10-08 78 views
2

我有一个没有配置SSL的基本LDAP设置。用户可以使用passwd命令登录但无法更改其密码。我已经去了很多博客,但没有运气。我禁用了selinux和iptables。LDAP用户无法使用passwd命令更改密码

对此的任何帮助将不胜感激。下面

详细信息,

  • OS:CentOS6.5
  • LDAP版本:OpenLDAP的-服务器 - 2.4.23-34.el6_5.1.x86_64
  • 客户端版本的OpenLDAP的客户端 - 2.4

    [servername ~]$ passwd 
    Changing password for user dkrishna. 
    Enter login(LDAP) password: 
    New password: 
    Retype new password: 
    LDAP password information update failed: Insufficient access 
    passwd: Authentication token manipulation error 
    
    :从所述终端试图改变密码时.23-34.el6_5.1.x86_64

输出

以下是在日志,

==>的/ var /日志/安全< ==

Oct 8 09:31:33 passwd: pam_unix(passwd:chauthtok): user "dkrishna" does not exist in /etc/passwd 
Oct 8 09:31:42 passwd: pam_unix(passwd:chauthtok): user "dkrishna" does not exist in /etc/passwd 

==>的/ var /日志/消息< ==

Oct 8 09:31:42 passwd: pam_ldap: ldap_modify_s Insufficient access 

ACL的配置如下,

database config 
access to * 
     by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage 
     by * none 

database monitor 
access to * 
     by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read 
     by dn.exact="cn=admin,dc=tibbr,dc=com" read 
     by * none 

access to attrs=userPassword 
     by self write 
     by anonymous auth 
     by users none 

access to * by * read 

回答

3

我找到了解决方案离子:

以下两行添加到该文件的末尾:oclDatabase\=\{2\}bdb.ldif

olcAccess: {0}to attrs=userPassword by self write by dn.base="cn=Manager,dc=domain,dc=com" write by anonymous auth by * none 

olcAccess: {1}to * by dn.base="cn=Manager,dc=domain,dc=com" write by self write by * read 

再见

+0

非常感谢托马斯的回应。像魅力一样工作!曾尝试将相同的规则放在slapd.conf文件中并重新启动服务,但它没有起作用。但是同样的规则直接放置在oclDatabase \ = {2} bdb.ldif文件中。 – 2014-10-29 17:41:09

0

看起来像被配置OCL数据库时的slapd.conf已弃用。

观察以下OCL配置指南中的代码片段: “从运行转换时开始,slapd.conf文件是冗余的。当加载slapd查找配置目录(default slapd.d)并读取其配置文件然后初始化OLC(cn = config)DIT。如果slapd.d目录没有找到,那么slapd会查找slapd.conf。“

+0

是OCL =?用于C++,Oracle数据库接口的Oracle类库。 – AnneTheAgile 2016-04-06 20:08:13