2.3. 使用命令行管理目录服务器中的角色
您可以使用命令行查看、创建和删除角色。
2.3.1. 在目录服务器中创建受管角色 复制链接链接已复制到粘贴板!
受管角色是具有明确枚举的成员列表的角色。您可以使用 ldapmodify 实用程序创建受管角色。以下示例为市场营销团队创建了一个受管角色。
先决条件
-
Directory Server 中存在
ou=people,dc=example,dc=com父条目。 -
Directory Server 中存在
cn=Bob Jones,ou=people,dc=example,dc=com用户条目。
流程
使用带有
-a选项的ldapmodify命令创建cn=Marketingmanaged role 条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow managed role 条目必须包含以下对象类:
-
LDAPsubentry -
nsRoleDefinition -
nsSimpleRoleDefinition -
nsManagedRoleDefinition
-
通过将
nsRoleDN属性添加到这个用户条目,将cn=Marketing,ou=people,dc=example,dc=commanaged role 分配给cn=Bob Jones,ou=people,dc=example,dc=com用户条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:为
userRoot数据库中nsRoleDN属性配置等号索引,以避免未索引的搜索:dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr nsroleDN --reindex userRoot
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr nsroleDN --reindex userRootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出现在属于
cn=Marketing,ou=people,dc=example,dc=com受管角色的用户条目:ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=Marketing,ou=people,dc=example,dc=com)" dn
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=Marketing,ou=people,dc=example,dc=com)" dn dn: cn=Bob Jones,ou=people,dc=example,dc=com dn: cn=Tom Devis,ou=people,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.2. 在目录服务器中创建过滤的角色 复制链接链接已复制到粘贴板!
如果条目在角色中定义了特定的属性,则目录服务器将条目分配给过滤的角色。角色定义指定 nsRoleFilter LDAP 过滤器。与过滤器匹配的条目是角色的成员。
您可以使用 ldapmodify 工具创建过滤的角色。以下示例为销售部门经理创建过滤的角色。
先决条件
-
Directory Server 中存在
ou=people,dc=example,dc=com父条目。
流程
使用带有
-a选项的ldapmodify命令创建cn=SalesManagerFilter过滤角色条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow cn=SalesManagerFilter过滤的角色条目具有角色的o=Sales managers过滤器。具有o属性且值为Sales managers 的所有用户条目都是过滤角色的成员。现在过滤角色成员的用户条目示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 过滤的角色条目必须具有以下对象类:
-
LDAPsubentry -
nsRoleDefinition -
nsComplexRoleDefinition -
nsFilteredRoleDefinition
-
可选:为
nsRoleFilter角色过滤器中使用的属性配置 相等 索引,以避免未索引的搜索。在给定示例中,该角色使用o=sales managers作为过滤器。因此,索引o属性以提高搜索性能:dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr o --reindex userRoot
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr o --reindex userRootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出现在属于
cn=SalesManagerFilter,ou=people,dc=example,dc=com过滤的用户条目:ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=SalesManagerFilter,ou=people,dc=example,dc=com)" dn
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=SalesManagerFilter,ou=people,dc=example,dc=com)" dn dn: cn=Jess Mor,ou=people,dc=example,dc=com dn: cn=Pat Smith,ou=people,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.3. 在目录服务器中创建嵌套角色 复制链接链接已复制到粘贴板!
嵌套角色可以包含受管和过滤的角色。嵌套角色条目需要 nsRoleDN 属性来识别要嵌套的角色。
您可以使用 ldapmodify 实用程序创建嵌套角色。以下示例创建嵌套角色,其中包含您在 Directory Server 中创建受管角色和过滤的角色,并在 Directory Server 中创建过滤的角色。
先决条件
-
Directory Server 中存在
ou=people,dc=example,dc=com父条目。
流程
使用带有
-a选项的ldapmodify命令,创建cn=MarketingSales嵌套角色条目,其中包含cn=SalesManagerFilter过滤角色和cn=Marketing受管角色:Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)角色可以具有
description属性。嵌套角色条目必须具有以下对象类:
-
LDAPsubentry -
nsRoleDefinition -
nsComplexRoleDefinition -
nsNestedRoleDefinition
-
验证
列出现在属于
cn=MarketingSales嵌套角色的用户条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.4. 查看条目的角色 复制链接链接已复制到粘贴板!
要查看条目的角色,请使用带有明确指定的 nsRole 虚拟属性的 ldapsearch 命令。
先决条件
- 角色条目存在。
-
将角色分配给
uid=user_name用户条目。
流程
使用指定的
nsRole虚拟属性搜索uid=user_name条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令检索
uid=user_name用户所属的所有角色。
2.3.5. 删除目录服务器中的角色 复制链接链接已复制到粘贴板!
要删除目录服务器中的角色,您可以使用 ldapmodify 命令。
以下是从 Directory Server 中删除 cn=Marketing managed 角色的示例。
流程
要删除
cn=Marketingmanaged role 条目,请输入:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当您删除角色时,Directory 服务器只删除角色条目,且不会删除每个角色成员的
nsRoleDN属性。要删除每个角色成员的nsRoleDN属性,请启用 referential Integrity 插件并配置此插件来管理nsRoleDN属性。有关引用完整性插件的更多信息,请参阅使用引用完整性来维护条目之间的关系。