您可以创建传统 CoS 模式,以便为基于条目角色的条目生成属性值。例如,可以使用基于角色的属性将服务器浏览限制设置为逐个条目浏览。
要创建基于角色的属性,请将 nsRole 属性作为传统 CoS 的 CoS 定义条目中的 cosSpecifier。由于 nsRole 属性可以是多值属性,因此可以定义具有多个可能模板条目的 CoS 模式。在确定要使用的模板条目时,为了避免出现模棱两可的情况,可以在 CoS 模板条目中包含cosPriority 属性。
例如,可以创建一个允许经理角色成员超过标准邮箱配额的 CoS。该经理角色如下:
dn: cn=ManagerRole,ou=People,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: nsRoleDefinition objectclass: nsComplexRoleDefinition objectclass: nsFilteredRoleDefinition cn: ManagerRole nsRoleFilter: (isManager=True) Description: filtered role for managers |
传统 CoS 定义条目的创建方式如下:
dn: cn=generateManagerQuota,ou=People,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: cosSuperDefinition objectclass: cosClassicDefinition cosTemplateDn: cn=managerCOS,ou=People,dc=example,dc=com cosSpecifier: nsRole cosAttribute: mailboxquota override |
CoS 模板名称必须是 cosTemplateDn 和 nsRole 值(角色的 DN)的组合。例如:
dn:cn="cn=ManagerRole,ou=People,dc=example,dc=com",\ cn=managerCOS,ou=People,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: extensibleobject objectclass: cosTemplate mailboxquota: 1000000 |
CoS 模板条目提供了 mailboxquota 属性值。附加的限定符 override 指示 CoS 覆盖目标条目中的任何现有 mailboxquota 属性值。属于该角色的目标条目将具有由该角色和 CoS 生成的已计算属性,例如:
$ ldapsearch -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -\ -b "ou=People,dc=example,dc=com" -s sub "(cn=*Fuentes)" dn: cn=Carla Fuentes,ou=People,dc=example,dc=comcn: Carla Fuentes isManager: TRUE...nsRole: cn=ManagerRole,ou=People,dc=example,dc=com mailboxquota: 1000000 |
角色条目和 CoS 定义条目应位于目录树中的相同位置,以便在其范围中具有相同的目标条目。CoS 目标条目也应位于相同的位置,以便于查找和维护。