通过使用组,您可以关联条目以简化管理。例如,使用组可以更轻松地定义访问控制指令 (Access Control Instruction, ACI)。组定义是一些特殊条目,可以在静态列表中指定其成员,也可以提供用于定义一组动态条目的过滤器。
无论组定义条目的位置如何,组的可能成员范围都是整个目录。为了简化管理,所有组定义条目通常都存储在一个位置,一般是根后缀下的 ou=Groups。
组可以分为静态组和动态组两种类型。
静态组。定义静态组的条目是从 groupOfNames 或 groupOfUniqueNames 对象类继承来的。组成员将按 DN 列出,作为 member 或 uniqueMember 属性的多个值。
或者,也可以为静态组使用 isMemberOf 属性。isMemberOf 属性将在开始搜索时进行计算并添加到用户条目,然后在完成搜索后再次被删除。此功能使得组的管理更加轻松,并且提供了快速读取访问。
动态组。定义动态组的条目是从 groupOfURLs 对象类继承来的。组成员身份由多值属性 memberURL 中指定的一个或多个过滤器定义。动态组中的成员是每次评估过滤器时与任一过滤器相匹配的条目。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
使用 ldapmodify 命令创建新的静态组。
例如,要创建名为 System Administrators 的新静态组并添加一些成员,可以使用以下命令:
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=System Administrators, ou=Groups, dc=example,dc=com changetype: add cn: System Administrators objectclass: top objectclass: groupOfNames ou: Groups member: uid=kvaughan, ou=People, dc=example,dc=com member: uid=rdaugherty, ou=People, dc=example,dc=com member: uid=hmiller, ou=People, dc=example,dc=com |
检查是否已创建新组以及是否已添加成员。
例如,要检查 Kirsten Vaughan 是否在新的 System Administrators 组中,请键入:
$ ldapsearch -b "dc=example,dc=com" uid=kvaughan isMemberOf uid=kvaughan,ou=People,dc=example,dc=com isMemberOf: cn=System Administrators, ou=Groups, dc=example,dc=com isMemberOf: cn=HR Managers,ou=groups,dc=example,dc=com |
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
使用 ldapmodify 命令创建新的动态组。
例如,要创建一个名为 "3rd Floor" 的新动态组(它包含所有房间号以 3 开头的员工),您可以使用以下命令:
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=3rd Floor, ou=Groups, dc=example,dc=com changetype: add cn: 3rd Floor objectclass: top objectclass: groupOfUrls ou: Groups memberURL: ldap:///dc=example,dc=com??sub?(roomnumber=3*) |