Re: ACL Question 'write stop' 'write break'

Edward Capriolo <[email protected]>
Newsgroups gmane.network.openldap.general
Message-ID <[email protected]>
On Thu, Oct 15, 2009 at 11:22 AM, Edward Capriolo <[email protected]> wrote:
> Hello all,
>
> We are currently migrating from a master-slave, to a multi-master
> setup. All went well except for the fact that the access on the old
> master node was more liberal then the access on the slave node. As a
> result some applications were able to use this to their advantage and
> now are not working quite correctly when each node is a read write
> master.
>
> here is my configuration:
>
> #access to dn.regex="mail=.*[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
> #  attrs=userPassword,accountstatus
> #  by dn="[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
> write break
> #  by dn="[email protected],ou=user,ou=jointhegrid,o=jointhegrid,c=US"
> write break
> access to attr=userPassword
>  by self write
>  by anonymous auth
>  by dn="[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
> read
>  by dn="[email protected],ou=user,ou=jointhegrid-inc.com,o=jointhegrid,c=US"
> read
>  by * none
> access to attrs=sambaLMPassword,sambaNTPassword
>  by dn="[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
> read
>  by dn="[email protected],ou=user,ou=jointhegrid-inc.com,o=jointhegrid,c=US"
> read
>  by self write
>  by * none
> access to *
>  by dn="[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
> write
>  by dn="[email protected],ou=user,ou=jointhegrid-inc.com,o=jointhegrid,c=US"
> write
>  by dnattr=manager write
>  by self write
>  by users read
>  by * none
>
> My problem is the top commented lines, these rules are to allow sara
> and john to administer all
> "mail=.*.managed" users. This worked fine in the past because no read
> queries hit the master, but now with multi-master
> "mail=.*.managed" users have no access to the directory. The old rule was
>
> #  by dn="[email protected],ou=user,ou=jointhegrid,o=jointhegrid,c=US"
> write stop
>
> I also tried
>
> #  by dn="[email protected],ou=user,ou=jointhegrid,o=jointhegrid,c=US"
> write break
>
> Which I was under the impression that "write break" would continue
> evaluation, but I do not understand how this is working. Can anyone
> help me with a suggestion for fixing this?
>
> Thank you!
>

Hey all,


I know this is somewhat of an RTFM question, but I did RTFM and I dont
understand
why how BREAK is interpreted.

man slapd.access
....
 The other two forms are used to keep on processing access clauses.   In
 detail,  the  continue  form allows for other <who> clauses in the same
 <access> clause to be considered, so that they may result in  incremen-
 tally  altering  the  privileges, while the break form allows for other
 <access> clauses that match the same target to be processed.   Consider
 the (silly) example

      access to dn.subtree="dc=example,dc=com" attrs=cn
           by * =cs break

      access to dn.subtree="ou=People,dc=example,dc=com"
           by * +r

do I need?

 access to dn.regex="mail=.*[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
 attrs=userPassword,accountstatus
 by dn="[email protected],ou=user,ou=jointhegrid.com,o=jointhegrid,c=US"
 write break
 by dn="[email protected],ou=user,ou=jointhegrid,o=jointhegrid,c=US"
write break
 by * break

?

We have a pretty large LDAP deployment with lots of application using
it. Every time I get this rule wrong I manage to block someones
access. I know its not your problem, but please throw me a bone here
:)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.