X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=doc%2Fman%2Fman5%2Fslapd.access.5;h=0b11805952ad1cf409ad4c948f1b93c538198aec;hb=e1a5177baca44d6ff5dceea3f6f91da329d43b85;hp=171b341d9781264b675876b80d844ae6f11f4a01;hpb=74443523583b0516de43abf9624420c030f43a0f;p=openldap diff --git a/doc/man/man5/slapd.access.5 b/doc/man/man5/slapd.access.5 index 171b341d97..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-2003 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,13 +11,15 @@ 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), .BR slapcat (8), +.BR slapdn (8), +.BR slapindex (8), and -.BR slapindex (8). +.BR slaptest (8). .LP The .B slapd.conf @@ -48,22 +51,78 @@ directives are defined for a backend or those which are defined are not applicable, the directives from the global configuration section are then used. .LP +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"). +.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 @@ -71,48 +130,82 @@ specifies the entity the access control directive applies to. It can have the forms .LP .nf - * - [dn[.]=] - [filter=] - [attrs=] + dn[.]= + filter= + attrs=[ val[/matchingRule][.]=] .fi .LP -The wildcard -.B * -stands for all the entries. +with +.LP +.nf + ={{exact|base(object)}|regex + |one(level)|sub(tree)|children} + ={|[{!|@}]}[,] + ={{exact|base(object)}|regex + |one(level)|sub(tree)|children} +.fi .LP The statement -.B dn= +.B dn= selects the entries based on their naming context. -The pattern is a string representation of the entry's DN. -.BR base , +The +.B +is a string representation of the entry's DN. +The wildcard +.B * +stands for all the entries, and it is implied if no +.B dn +form is given. +.LP +The +.B +is optional; however, it is recommended to specify it to avoid ambiguities. +.B Base +(synonym of +.BR baseObject ), the default, or .B exact (an alias of .BR base ) -indicates the entry whose DN is equal to the pattern. +indicates the entry whose DN is equal to the +.BR ; .B one +(synonym of +.BR onelevel ) indicates all the entries immediately below the -.BR pattern , -.B subtree -indicates all entries in the subtree at the pattern, +.BR , +.B sub +(synonym of +.BR subtree ) +indicates all entries in the subtree at the +.BR , .B children -indicates all the entries below (subordinate to) the pattern. +indicates all the entries below (subordinate to) the +.BR . .LP If the .B qualifier is .BR regex , -then the value is a regular expression pattern, +then +.B +is a POSIX (''extended'') regular expression pattern, as detailed in -.BR regex (7), +.BR regex (7) +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. .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 +.B filter +form is given. .LP The statement .B attrs= @@ -124,24 +217,64 @@ indicating access to the entry itself, and indicating access to the entry's children. ObjectClass names may also be specified in this list, which will affect all the attributes that are required and/or allowed by that objectClass. +Actually, names in +.B +that are prefixed by +.B @ +are directly treated as objectClass names. A name prefixed by +.B ! +is also treated as an objectClass, but in this case the access rule +affects the attributes that are not required nor allowed +by that objectClass. +If no +.B attrs +form is given, +.B attrs=@extensibleObject +is implied, i.e. all attributes are addressed. .LP Using the form -.B attrs= val[.