系统:debian12
包含以下三个数据库:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config
olcDatabase: [{\<index\>}]\<type\>
数据库条目必须具有olcDatabaseConfig对象类。
frontend用于保存应用于所有其他数据库的数据库级别选项。后续的数据库定义也可能覆盖某些frontend设置。
config和 frontend数据库总是隐式创建的,它们是在任何其他数据库之前创建的。
olcDatabase={0}config.ldif中包含如下信息说明为SASL机制授权(集成身份认证)
cat olcDatabase\=\{0\}config.ldif
其中包含如下信息:
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth manage by * break
olcDatabase={1}mdb.ldif中包含如下信息说明为简单授权(账号密码登录)
cat olcDatabase\=\{1\}mdb.ldif
其中包含如下信息:
olcRootDN: cn=admin,dc=srv,dc=world
olcRootPW:: e1NTSEF9N3RwUTR4WkdhK3pBRlNla
默认的访问控制策略是允许所有客户端读取。无论定义了什么访问控制策略,rootdn总是被允许对所有内容拥有完全权限(即身份验证、搜索、比较、读取和写入)。因此,在子句中显式列出rootdn是无用的。
配置访问控制通过olcAccess实现
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to * by * read
olcAccess: to <what> [by <who> [<access>] [<control>] ]+
<what>选择访问所应用的条目和/或属性,<who>指定授予哪些实体访问权限,<access>指定授权的访问权限
<what> ::= * |
[dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
[filter=<ldapfilter>] [attrs=<attrlist>]
可以通过DN和过滤器选择条目
按DN选择条目:
to * : 全部条目
to dn[.
to dn.
通过过滤器选择条目:
to filter=
如to filter=(objectClass=person)
DN和过滤器可以同时用来选择条目:
如 to dn.one=“ou=people,o=suffix” filter=(objectClass=person)
属性选择
可以通过以逗号分隔的属性名称列表来选择条目中的属性:
attrs=
通过使用单个属性名称和值选择器来选择属性的特定值:
attrs=