How atomic are changes made to database entries with the following type of LDIFs:
dn: olcDatabase={1}bdb,cn=config changetype: modify add: olcAccess olcAccess: {100}to <what> by <who> read olcAccess: {65000}to <what> by <who> none
Does ldapmodify simply add/remove attributes on the fly, or does it get the whole entry, then update a new one in? This may become significant if there are a large number of ACLs. If the update is not atomic, is there a potential for problems if the list of ACLs becomes large (ie: 200 <whats> with an average of 10 <whos> each) ?
Background: The aim here is to leverage nss_ldap and olcAccess entries to manage access to servers while maintaining control of which accounts appear on which servers via OpenLDAP, rather than filters on the client side. This is to prevent servers that have been misconfigured or (maliciously) modified from being able to gain read access to user entries other than the ones explicitly allowed by the directory. IMO, a client server being able to pick who should be allowed to log on defeats the purpose of centrally managed logins.
Romain Komorn