X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=doc%2Fman%2Fman5%2Fslapd.access.5;h=0b11805952ad1cf409ad4c948f1b93c538198aec;hb=e1a5177baca44d6ff5dceea3f6f91da329d43b85;hp=cfc7427d2a693718c6f47f8a27a82fc0549b428c;hpb=f1698e30f52d9a8de5461166ee25283d28bbc057;p=openldap diff --git a/doc/man/man5/slapd.access.5 b/doc/man/man5/slapd.access.5 index cfc7427d2a..0b11805952 100644 --- a/doc/man/man5/slapd.access.5 +++ b/doc/man/man5/slapd.access.5 @@ -1,6 +1,7 @@ .TH SLAPD.ACCESS 5 "RELEASEDATE" "OpenLDAP LDVERSION" -.\" Copyright 1998-2005 The OpenLDAP Foundation All Rights Reserved. +.\" Copyright 1998-2011 The OpenLDAP Foundation All Rights Reserved. .\" Copying restrictions apply. See COPYRIGHT/LICENSE. +.\" $OpenLDAP$ .SH NAME slapd.access \- access configuration for slapd, the stand-alone LDAP daemon .SH SYNOPSIS @@ -10,9 +11,7 @@ The .BR slapd.conf (5) file contains configuration information for the .BR slapd (8) -daemon. This configuration file is also used by the -.BR slurpd (8) -replication daemon and by the SLAPD tools +daemon. This configuration file is also used by the SLAPD tools .BR slapacl (8), .BR slapadd (8), .BR slapauth (8), @@ -55,24 +54,75 @@ are then used. If no access controls are present, the default policy allows anyone and everyone to read anything but restricts updates to rootdn. (e.g., "access to * by * read"). -The rootdn can always read and write EVERYTHING! +.LP +When dealing with an access list, because the global access list is +effectively appended to each per-database list, if the resulting +list is non-empty then the access list will end with an implicit +.B access to * by * none +directive. If there are no access directives applicable to a backend, +then a default read is used. +.LP +.B Be warned: the rootdn can always read and write EVERYTHING! .LP For entries not held in any backend (such as a root DSE), the -directives of the first backend (and any global directives) are -used. +global directives are used. .LP Arguments that should be replaced by actual text are shown in brackets <>. .SH THE ACCESS DIRECTIVE The structure of the access control directives is .TP -.B access to "[ by [ ] ]+" +.B access to "[ by [ ] [ ] ]+" Grant access (specified by .BR ) to a set of entries and/or attributes (specified by .BR ) by one or more requestors (specified by .BR ). + +.LP +Lists of access directives are evaluated in the order they appear +in \fIslapd.conf\fP. +When a +.B +clause matches the datum whose access is being evaluated, its +.B +clause list is checked. +When a +.B +clause matches the accessor's properties, its +.B +and +.B +clauses are evaluated. +Access control checking stops at the first match of the +.B +and +.B +clause, unless otherwise dictated by the +.B +clause. +Each +.B +clause list is implicitly terminated by a +.LP +.nf + by * none stop +.fi +.LP +clause that results in stopping the access control with no access +privileges granted. +Each +.B +clause list is implicitly terminated by a +.LP +.nf + access to * + by * none +.fi +.LP +clause that results in granting no access privileges to an otherwise +unspecified datum. .SH THE FIELD The field .BR @@ -80,9 +130,9 @@ specifies the entity the access control directive applies to. It can have the forms .LP .nf - [dn[.]=] + dn[.]= filter= - attrs=[ val[.]=] + attrs=[ val[/matchingRule][.]=] .fi .LP with @@ -98,9 +148,6 @@ with The statement .B dn= selects the entries based on their naming context. -The -.B dn= -part is optional. The .B is a string representation of the entry's DN. @@ -112,11 +159,7 @@ form is given. .LP The .B -is also optional; however, it is recommended to specify both the -.B dn= -and the -.B -to avoid ambiguities. +is optional; however, it is recommended to specify it to avoid ambiguities. .B Base (synonym of .BR baseObject ), @@ -153,11 +196,11 @@ as detailed in and/or .BR re_format (7), matching a normalized string representation of the entry's DN. -The regex form of the pattern does not (yet) support UTF\-8. +The regex form of the pattern does not (yet) support UTF-8. .LP The statement .B filter= -selects the entries based on a valid LDAP filter as described in RFC 2254. +selects the entries based on a valid LDAP filter as described in RFC 4515. A filter of .B (objectClass=*) is implied if no @@ -190,13 +233,13 @@ form is given, is implied, i.e. all attributes are addressed. .LP Using the form -.B attrs= val[.]= +.B attrs= val[/matchingRule][.]= specifies access to a particular value of a single attribute. In this case, only a single attribute type may be given. The .B .B exact (the default) uses the attribute's equality matching rule to compare the -value. If the +value, unless a different (and compatible) matching rule is specified. If the .B is .BR regex , @@ -214,6 +257,24 @@ resulting in base, onelevel, subtree or children match, respectively. The dn, filter, and attrs statements are additive; they can be used in sequence to select entities the access rule applies to based on naming context, value and attribute type simultaneously. +Submatches resulting from +.B regex +matching can be dereferenced in the +.B +field using the syntax +.IR ${v} , +where +.I +is the submatch number. +The default syntax, +.IR $ , +is actually an alias for +.IR ${d} , +that corresponds to dereferencing submatches from the +.B dnpattern +portion of the +.B +field. .SH THE FIELD The field .B @@ -254,8 +315,7 @@ It can have the forms tls_ssf= sasl_ssf= - aci[=] - dynacl/name[.][=] + dynacl/[/][.][=] .fi .LP with @@ -266,10 +326,11 @@ with ={{exact|base(object)}|regex |one(level)|sub(tree)|children|level{}} ={exact|expand} - ={