我在Ubuntu中使用ldap服务器。从phpldapadmin我创建了一个新条目。在ldap服务器中,当我使用命令$ ldapsearch -x
时,我可以看到我创建的所有数据:
# leja, example, people, ldap.com
dn: cn=leja,cn=example,ou=people,dc=ldap,dc=com
givenName: Leja
gidNumber: 500
homeDirectory: /home/users/leja
sn: Bin
loginShell: /bin/sh
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
uidNumber: 1001
uid: leja
cn: leja
但无法在ldap服务器中找到Ubuntu中存储此数据的位置。据我所知,它应该是*.ldif
文件。
我希望我的ldap服务器允许用户更改自己的'userPassword'
属性。所以我需要修改用户数据。
您能帮助我在哪里找到数据吗?
答案 0 :(得分:0)
不要指望OpenLDAP(或任何其他LDAP服务器)将条目存储为磁盘上的LDIF文件。 LDAP服务器使用数据库后端(通常是嵌入式)来存储条目。但是,除了通过LDAP协议之外,您不应该访问数据库。
LDIF只是一种常用的文件格式,用于ldapsearch,ldapmodify等工具使用的目录条目的外部表示。此外,LDIF文件用于初始化目录服务器,所以不要感到惊讶您在磁盘上找到LDIF文件。它们通常用于备份和恢复配置(和用户)数据。
如果您希望用户更改自己的密码,则必须通过slapd configuration file中的访问控制语句向经过身份验证的用户授予对密码属性的写入权限。 Read about access control,查看slapdconfig文档末尾的示例配置。