On Wed, Apr 14, 2010 at 04:00:26PM -0400, Matt Ingram wrote:
access to attrs=userPassword by group/groupOfNames/member="cn=ldappers,ou=Apps,ou=Groups,ou=Accounts,dc=domain,dc=com" write by dn.children="ou=Admins,dc=domain,dc=com" write by self write by * auth
trying to achieve write access for the ldappers group, children of the Admins ou and self. by self write should give a user the ability to change their password, correct ? Is there a better ACL for what I'm trying to achieve ?
You have indeed given those users the ability to change the password. However, you have also given them the ability to *read* it (because 'write' includes 'read' in OpenLDAP ACLs). This is not usually necessary, and even if the password is hashed it is good practice to prevent it being read.
One comment I would make about your ACLs is that in several places you are granting read access to userPassword. This is not usually necessary nor is it a good idea. You need 'by * auth' access to permit authentication, but only need to give '=w' access to those who need to change passwords. Remember that the 'write' keyword includes read access.
If you replace 'write' with '=w' in the access statement above, you will still give those users the ability to change the password but they will not be able to read the existing password.
Andrew