Sou um novato LDAP total e provavelmente estou cometendo algum erro realmente estúpido, então espero que alguém possa me apontar na direção correta. Estou executando o slapd do openldap 2.4.23, no Linux. O problema que estou tendo é que, a partir da conta de gerenciamento que configurei no slapd.conf (cn = Manager, dc = exemplo, dc = com), posso definir a senha de um usuário final sem problemas:
# ldappasswd -D 'cn=Manager,dc=example,dc=com' -W -S 'uid=tsuraan,ou=People,dc=example,dc=com'
No entanto, do ponto de vista do usuário final, posso executar pesquisas e coisas semelhantes, mas não posso alterar a senha:
$ ldapsearch -x -D "uid=tsuraan,ou=People,dc=example,dc=com" -W
Enter LDAP Password:
<results>
$ ldappasswd -D 'uid=tsuraan,ou=People,dc=example,dc=com' -W -S 'uid=tsuraan,ou=People,dc=example,dc=com'
New password:
Re-enter new password:
Enter LDAP Password:
Result: Insufficient access (50)
Eu também tentei usar o ldapmodify para alterar diretamente o atributo userPassword, e ele fornece a mesma mensagem de acesso insuficiente (50). Minha seção slapd ACL é assim:
access to *
by dn="uid=root,ou=People,dc=example,dc=com" write
by users read
by self write
by anonymous auth
access to attrs=userPassword,gecos,description,loginShell
by self write
access to attrs="userPassword"
by dn="uid=root,ou=People,dc=example,dc=com" write
by anonymous auth
by self write
by * none
E eu tenho um usuário não-root cujo LDIF se parece com isso:
dn: uid=tsuraan,ou=People,dc=example,dc=com
uid: tsuraan
cn: tsuraan
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword: {crypt}x
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/tsuraan
O Google não está me dando nenhum amor hoje, e não consigo entender por que meu usuário não pode escrever em seu próprio nó LDAP, pois tenho "por auto-gravação" em todo o lugar, espero que alguém possa me dar uma mão.