[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: I need some help w/ACLs
> We maintain email lists on LDAP for every course section offered at the
> college, and I am moving it from a Netscape Server to OpenLDAP. The LDAP
> structure is a hierarchy of many branches. Basically, a course list entry
> DN
> for a course section in computer science, looks like this:
>
> uid=2004FA-CSC12001,ou=csc,ou=classlists,o=linfield.edu
>
> The actual entry is in the computer science hierarchy (ou=csc) and the
> computer science hierarchy is in the class lists hierarchy
> (ou=classlists). I
> need to set up ACLs in OpenLDAP that are functionally equivalent to those
> in
> the Netscape Server.
>
> The actual courselist entry has an owner attribute containing one or more
> DNs. These are the faculty who need to be able to view and modify the
> entry.
> That's straight forward enough and not a problem.
# something like
access to dn.regex="^uid=[^,]+,ou=[^,]+,ou=classlists,o=linfield.edu$"
by dnattr=owner write
> However, each subject
> hiearchy entry (DN: ou=<subject>,ou=classlists,o=linfield.edu) has a
> uniquemember attribute containg the DNs of those who can view and modify
> any
> entry in that particular hierarchy.
# something like, assuming the uniqueMember attribute
# implies a groupOfUniqueNames objectClass,
access to dn.regex="^uid=[^,]+,(ou=[^,]+,ou=classlists,o=linfield.edu)$"
by group/groupOfUniqueNames/uniqueMember.expand="$1" write
> And the classlists hierarchy (DN:
> ou=classlists,o=linfield.edu) has a uniquememeber attribute containg the
> DNs
> of those who can view and modify any courselist entry.
# something like
access to dn.regex="^uid=[^,]+,ou=[^,]+,ou=classlists,o=linfield.edu$"
by
group/groupOfUniqueNames/uniqueMember="ou=classlists,o=linfield.edu"
write
>
> I'm not at all sure how to setup the ACLs to accomplish that access. Does
> anybody have any guides, or maybe done something similar you'd be willing
> to
> share?
# so, to summarize
access to dn.regex="^uid=[^,]+,(ou=[^,]+,ou=classlists,o=linfield.edu)$"
by dnattr=owner write
by group/groupOfUniqueNames/uniqueMember.expand="$1" write
by
group/groupOfUniqueNames/uniqueMember="ou=classlists,o=linfield.edu"
write
You don't specify the version of OpenLDAP; this may imply slight
differences (e.g. in the <groupstyle>) but a look at slapd.access(5) for
the version you're using should clarify issues; the required features are
available ever since.
p.
--
Pierangelo Masarati
mailto:pierangelo.masarati@sys-net.it
SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497