第 3 章 用户管理和身份验证


了解如何管理用户访问权限、资源限值、用户组和用户角色。您可以配置密码和帐户锁定策略,拒绝对一组用户的访问,并根据用户的绑定区分名称(bind DN)限制系统资源。

3.1. 在目录服务器中使用组

您可以将用户添加到目录服务器中的组中。组是组目录条目的一种机制,简化了用户帐户的管理。

使用组时,Directory 服务器会将属于该组成员的用户的可分辨名称(DN)存储在组条目的成员资格属性中。此特殊属性由您在创建组条目时选择的对象类定义。有关组类型的详情,请参阅 Directory Server 中的组类型

组比角色更快。但是,若要使组具有角色的好处,您需要启用 MemberOf 插件。默认情况下,如果此用户是组的成员,则 MemberOf 插件会自动将 memberOf 属性添加到用户条目中。因此,有关成员资格的信息保存在组和用户条目中。有关 MemberOf 插件的详情,请参阅 列出用户条目中的组成员资格

3.1.1. 目录服务器中的组类型

在目录服务器中,您可以将成员添加到 静态或动态 组中。有关每种组类型定义的详情,请参阅 关于 Directory Server 中的组。组对象类定义成员资格属性,并将成员添加到组中,您需要向组条目的这个成员资格属性添加一个值。

下表列出了组对象类和对应的成员资格属性。

Expand
组类型对象类成员资格属性

Static

groupOfNames

成员

groupOfUniqueNames

uniqueMember

dynamic

groupOfURLs

memberURL

groupOfCertificates

memberCertificate

创建组时可以使用的对象类:

  • groupOfNames 是一个简单组。您可以在此组中添加任何条目。member 属性决定组成员资格。member 属性值是作为组成员的用户条目的可分辨名称(DN)。
  • groupOfUniqueNames 将用户 DN 列为成员,但 DN 必须是唯一的。这个组可防止自我引用组成员资格。uniqueMember 属性决定组成员资格。
  • groupOfURLs 使用 LDAP URL 列表来过滤并创建其成员资格列表。任何动态组都需要这个对象类,并可与 groupOfNamesgroupOfUniqueNames 一起使用。memberURL 属性决定组成员资格。
  • groupOfCertificates 使用 LDAP 过滤器搜索证书名称以识别组成员。使用 groupOfCertificates 对象类进行组的访问控制,因为您可以为该组提供特殊访问权限。memberCertificateDescription 属性决定组成员资格。
重要

如果您将静态组的对象类与其中一个动态对象类一起使用,则组将变为动态的。

MemberOf 插件 不支持 动态组。因此,如果用户条目与动态组的过滤器匹配,插件不会将 memberOf 属性添加到用户条目中。

3.1.2. 创建静态组

您可以使用命令行或 Web 控制台创建静态组。

3.1.2.1. 使用命令行创建静态组

使用 dsidm 工具创建带有 groupOfNames 对象类的静态组。使用 ldapmodify 工具创建带有 groupOfUniqueNames 对象类的静态组。

以下示例在 ou=groups,dc=example,dc=com 条目中创建两个静态组。

前提条件

  • ou=groups,dc=example,dc=com 父条目存在。

流程

  • 要使用 groupOfNames 对象类创建 cn=simple_group 组,请运行:

    # dsidm <instance_name> -b "dc=example,dc=com" group create --cn "simple_group"
    Successfully created simple_group
    Copy to Clipboard Toggle word wrap

    请注意,dsidm group create 命令仅在 ou=group 子条目中创建组。如果要在另一个条目中创建组,请使用 ldapmodify 工具。

  • 要创建带有 groupOfUniqueNames 对象类的 cn=unique_members_group 组,请运行:

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=unique_members_group,ou=groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupOfUniqueNames
    cn: unique_members_group
    description: A static group with unique members
    
    adding new entry "cn=unique_members_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

验证

  • 使用 dsidm group list 命令列出带有 groupOfNames 对象类的组:

    # dsidm --basedn "dc=example,dc=com" <instance_name> group list
    simple_group
    Copy to Clipboard Toggle word wrap
  • 使用 dsidm uniquegroup list 命令列出具有唯一成员的组:

    # dsidm --basedn "dc=example,dc=com" <instance_name> uniquegroup list
    unique_members_group
    Copy to Clipboard Toggle word wrap

3.1.2.2. 在 LDAP 浏览器中创建静态组

您可以使用 Web 控制台创建静态组。以下示例在 ou=groups,dc=example,dc=com 父条目中创建一个 static_group

前提条件

  • ou=groups,dc=example,dc=com 父条目存在。
  • 在 web 控制台中,您有登录实例的权限。有关登录到 Web 控制台的更多信息,请参阅使用 Web 控制台登录到目录服务器

流程

  1. 导航到 LDAP 浏览器 菜单。
  2. 使用 TreeTable 视图,展开您要在其中创建组的父条目 ou=groups,dc=example,dc=com
  3. 点 Options 菜单(3.3.0)并选择 New 打开向导窗口。
  4. 选择 Create a group,再单击 Next
  5. 为 groupe 类型选择 Basic Group,然后单击 Next
  6. 添加组名称、组描述,然后选择组的成员资格属性:

    • 使用 groupOfNames 对象类的组的成员。
    • 带有 groupOfUniqueNames 对象类的组 uniqueMember。
  7. 点击 Next
  8. 可选:将成员添加到组中,然后点 Next
  9. 验证组信息,单击 Create、和 Finish

验证

  • 展开后缀树中新创建的组条目。

3.1.3. 为静态组添加成员

您可以使用 web 控制台的命令行将成员添加到组中。

3.1.3.1. 使用命令行将成员添加到静态组中

要将成员添加到静态组中,请使用 ldapmodify 工具。

前提条件

  • 组条目存在。
  • 存在用户条目。

流程

  • 要将成员添加到带有 groupOfNames 对象类的静态组中,请将用户可分辨名称(DN)作为值添加到 group 条目的 member 属性中:

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=simple_group,ou=groups,dc=example,dc=com
    changetype: modify
    add: member
    member: uid=jsmith,ou=people,dc=example,dc=com
    
    modifying entry "cn=simple_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    命令将 uid=jsmith 用户添加到 cn=simple_group 组中。

  • 要将成员添加到带有 groupOfUniqueNames 对象类的静态组中,请将用户可分辨名称(DN)作为值添加到组条目的 uniqueMember 属性中:

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=unique_members_group,ou=groups,dc=example,dc=com
    changetype: modify
    add: uniqueMember
    uniqueMember: uid=ajonson,ou=people,dc=example,dc=com
    
    modifying entry "cn=unique_members_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    命令将 uid=ajonson 用户添加到 cn=unique_members_group 组中。

验证

  • 列出组成员:

    # ldapsearch -xLL -D "cn=Directory Manager" -W -b dc=example,dc=com "(cn=simple_group)"
    
    dn: cn=simple_group,ou=Groups,dc=example,dc=com
    objectClass: top
    objectClass: groupOfNames
    objectClass: nsMemberOf
    cn: simple_group
    member: uid=jsmith,ou=people,dc=example,dc=com
    member: uid=mtomson,ou=people,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

您可以使用 LDAP 浏览器将成员添加到 Web 控制台中的静态组中。

前提条件

流程

  1. 导航到 LDAP 浏览器 菜单。
  2. 使用 TreeTable 视图,展开您要添加成员的组条目。例如,您要向 cn=unique_members_group,ou=groups,dc=example,dc=com 添加一个成员。
  3. 点 Options 菜单(3.3.0)并选择 Edit 以打开向导窗口。窗口中显示当前成员列表。
  4. 选择 Find New Members 选项卡。
  5. 在搜索栏中输入成员的 uidcn 属性值的一部分,然后按 Enter 键。Available Members 字段显示您可以添加到组的用户可区分名称(DN)。
  6. 选择成员 DN 并将其移到 Chosen Members 字段。
  7. Add Member 按钮。

验证

  • 展开 cn=unique_members_group,ou=groups,dc=example,dc=com 组条目,并在条目详情中找到添加的用户。

3.1.4. 使用命令行创建动态组

目录服务器只支持使用命令行创建动态组。使用 ldapmodify 工具创建带有 groupOfURLsgroupOfCertificates 对象类的动态组。

以下示例在 ou=groups,dc=example,dc=com 条目中创建两个动态组。

前提条件

  • ou=groups,dc=example,dc=com 父条目存在。

流程

  • 要使用 groupOfURLs 对象类创建 cn=example_dynamic_group 组,请运行:

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=example_dynamic_group,ou=groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupOfURLs
    cn: example_dynamic_group
    description: Example dynamic group for user entries
    memberURL: ldap:///dc=example,dc=com??sub?(&(objectclass=person)(cn=*sen))
    
    adding new entry "cn=example_dynamic_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    命令会创建一个动态组,它将过滤具有 person 对象类和通用名称(cn)值右侧的 sen 子字符串的动态组。

  • 要创建带有 groupOfCertificates 对象类的 cn=example_certificates_group 组,请运行:

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=example_certificates_group,ou=groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupOfCertificates
    cn: example_certificates_group
    description: Example dynamic group for certificate entries
    memberCertificateDescription: {ou=people, l=USA, dc=example, dc=com}
    
    adding new entry "cn=example_certificates_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    该命令会创建一个动态组,它过滤其证书主题 DNs 包含 ou=people,l=USA,dc=example,dc=com 的成员。

验证

  • 使用 groupOfURLs 对象类搜索新创建的组:

    # ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfURLs" 1.1 
    
    dn: cn=example_dynamic_group,ou=groups,dc=example,dc=com
    Copy to Clipboard Toggle word wrap
  • 使用 groupOfCertificates 对象类搜索新创建的组:

    # ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfCertificates" 1.1 
    
    dn: cn=example_certificates_group,ou=groups,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

3.1.5. 列出用户条目中的组成员资格

组通过使用 membership 属性定义属于此组的条目。易于查看 组并查找其成员。例如,带有 groupOfNames 对象类的静态组存储其成员的可分辨名称(DN) 作为成员 的值。但是,您无法快速查找单个用户所属的组。使用组时,用户条目不包含表示用户成员资格的任何内容,这与角色不同。

要解决这个问题,您可以使用 MemberOf 插件。MemberOf 插件分析组条目中的 membership 属性,并在指向组的用户条目中自动写入 memberOf 属性。默认情况下,插件检查组中的 member 属性,但您可以使用几个属性来支持不同的组类型。

当您添加或删除某个组的成员时,插件会更新用户条目中的 memberOf 属性。使用 MemberOf 插件,您可以对特定用户条目执行简单的搜索,以查找该用户所属的所有组。MemberOf 插件显示所有组的直接和间接成员资格。

重要

MemberOf 插件仅为 静态 组管理成员资格属性。

3.1.5.1. 使用 MemberOf 插件时的注意事项

使用 MemberOf 插件时,请考虑以下几点:

  • 复制拓扑中的 MemberOf 插件

    在复制拓扑中,您可以以两种方式管理 MemberOf 插件:

    • 在拓扑中的所有供应商和消费者服务器上启用 MemberOf 插件。在这种情况下,您必须从所有复制协议中的复制中排除用户条目的 memberOf 属性。

      有关排除属性的详情,请参阅在 部分复制中管理属性

    • 仅在拓扑中的所有供应商服务器上启用 MemberOf 插件。要做到这一点:

      • 您必须禁用 memberOf 属性到复制协议中所有启用了写入的供应商复制。

        有关排除属性的详情,请参阅在 部分复制中管理属性

      • 您必须启用 memberOf 属性到其复制协议中所有消费者副本的复制。
      • 您必须在消费者副本中禁用 MemberOf 插件。
  • 带有分布式数据库的 MemberOf 插件

    配置目录数据库 中所述,您可以将目录的子树存储在单独的数据库中。默认情况下,MemberOf 插件只更新存储在与组相同的数据库中的用户条目。要在所有数据库中更新用户,您必须在 上将 memberOfAllBackends 参数设置为。有关设置 memberOfAllBackends 参数的详情,请参阅使用 Web 控制台在每个服务器上配置 MemberOf 插件

3.1.5.2. MemberOf 插件所需的对象类

默认情况下,MemberOf 插件将 nsMemberOf 对象类添加到用户条目中,以提供 memberOf 属性。nsMemberOf 对象类足以使插件正常工作。

另外,您可以创建包含 inetUser,inetAdmin,inetOrgPerson 对象类的用户条目。这些对象类支持 memberOf 属性。

要配置嵌套组,组必须使用 extensibleObject 对象类。

注意

如果目录条目不包含支持所需属性操作的对象类失败,并显示以下错误:

LDAP: error code 65 - Object Class Violation
Copy to Clipboard Toggle word wrap

3.1.5.3. MemberOf 插件语法

在配置 MemberOf 插件时,您可以设置主要两个属性:

  • memberOfGroupAttr.定义要从组条目轮询哪个成员资格属性。memberOfGroupAttr 属性是 multi-valued。因此,插件可以管理多种类型的组。默认情况下,插件轮询 member 属性。
  • memberOfAttr.定义在成员的用户条目中创建和管理的成员资格属性。默认情况下,插件将 memberOf 属性添加到用户条目中。

此外,插件语法提供插件路径、用于标识 MemberOf 插件、插件状态和其他配置参数的功能。

以下示例显示了默认的 MemberOf 插件条目配置:

dn: cn=MemberOf Plugin,cn=plugins,cn=config
cn: MemberOf Plugin
memberofallbackends: off
memberofattr: memberOf
memberofentryscope: dc=example,dc=com
memberofgroupattr: member
memberofskipnested: off
nsslapd-plugin-depends-on-type: database
nsslapd-pluginDescription: memberof plugin
nsslapd-pluginEnabled: off
nsslapd-pluginId: memberof
nsslapd-pluginInitfunc: memberof_postop_init
nsslapd-pluginPath: libmemberof-plugin
nsslapd-pluginType: betxnpostoperation
nsslapd-pluginVendor: 389 Project
nsslapd-pluginVersion: 2.4.5
objectClass: top
objectClass: nsSlapdPlugin
objectClass: extensibleObject
Copy to Clipboard Toggle word wrap

有关示例中的参数以及您可以设置的其他参数的详情,请参阅"配置和架构参考"文档中的 MemberOf 插件 部分。

3.1.5.4. 启用 MemberOf 插件

您可以使用命令行或 Web 控制台启用 MemberOf 插件。

3.1.5.4.1. 使用命令行启用 MemberOf 插件

使用 dsconf 实用程序启用 MemberOf 插件。

流程

  1. 启用插件:

    # dsconf <instance_name> plugin memberof enable
    Copy to Clipboard Toggle word wrap
  2. 重启实例:

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

验证

  • 查看插件配置详情:

    # dsconf <instance_name> plugin memberof show
    
    dn: cn=MemberOf Plugin,cn=plugins,cn=config
    ...
    nsslapd-pluginEnabled: on
    ...
    Copy to Clipboard Toggle word wrap
3.1.5.4.2. 使用 Web 控制台启用 MemberOf 插件

您可以使用 Web 控制台启用 MemberOf 插件。

前提条件

流程

  1. 导航到 Plugins 菜单。
  2. 在插件列表中选择 MemberOf 插件。
  3. 将状态更改为 ON 以启用插件。
  4. 重新启动实例。有关重启实例的说明,请参阅使用 Web 控制台启动和停止目录服务器实例

3.1.5.5. 在每个服务器上配置 MemberOf 插件

如果您不想复制 MemberOf 插件的配置,请使用命令行或 Web 控制台在每台服务器上手动配置插件。

默认情况下,MemberOf 插件从组条目读取 成员 成员资格属性,并将 memberOf 属性添加到用户条目中。但是,您可以将插件配置为读取组中的其他成员资格属性,将另一个属性添加到用户条目,跳过嵌套组,适用于所有数据库和其他设置。

例如,您希望 MemberOf 插件执行以下操作:

  • 从组条目读取 uniqueMember 属性以识别成员资格。
  • 跳过嵌套组。
  • 搜索所有数据库中的用户条目。

前提条件

流程

  1. (可选):显示 MemberOf 插件配置,以查看插件当前从组条目读取的成员资格属性:

    # dsconf <instance_name> plugin memberof show
    
    ...
    memberofgroupattr: member
    ...
    Copy to Clipboard Toggle word wrap

    该插件目前从 group 条目读取 member 属性,以检索成员。

  2. uniqueMember 属性设置为插件配置中的 memberOfGroupAttr 参数:

    # dsconf <instance_name> plugin memberof set --groupattr uniqueMember
    Copy to Clipboard Toggle word wrap

    memberOfGroupAttr 参数是多值,您可以通过将它们全部传递给- groupattr 参数来设置多个值。例如:

    # dsconf <instance_name> plugin memberof set --groupattr member uniqueMember
    Copy to Clipboard Toggle word wrap
  3. 在使用分布式数据库的环境中,将插件配置为搜索所有数据库中的用户条目,而不是只使用本地数据库:

    # dsconf <instance_name> plugin memberof set --allbackends on
    Copy to Clipboard Toggle word wrap

    命令设置 memberOfAllBackends 参数。

  4. 配置插件以跳过嵌套组:

    # dsconf <instance_name> plugin memberof set --skipnested on
    Copy to Clipboard Toggle word wrap

    命令设置 memberOfSkipNested 参数。

  5. 可选:默认情况下,如果用户条目没有允许 memberOf 属性的对象类,插件会将 nsMemberOf 对象类添加到用户条目中。要配置插件,将 inetUser 对象类添加到用户条目而不是 nsMemberOf 中,请运行:

    # dsconf <instance_name> plugin memberof set --autoaddoc inetUser
    Copy to Clipboard Toggle word wrap

    命令设置 memberOfAutoAddOC 参数。

  6. 重启实例:

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

验证

  • 查看 MemberOf 插件配置:

    # dsconf <instance_name> plugin memberof show
    dn: cn=MemberOf Plugin,cn=plugins,cn=config
    cn: MemberOf Plugin
    memberofallbackends: on
    memberofattr: memberOf
    memberofautoaddoc: inetuser
    memberofentryscope: dc=example,dc=com
    memberofgroupattr: uniqueMember
    memberofskipnested: on
    ...
    nsslapd-pluginEnabled: on
    ...
    Copy to Clipboard Toggle word wrap

默认情况下,MemberOf 插件从组条目读取 成员 成员资格属性,并将 memberOf 属性添加到用户条目中。但是,您可以将插件配置为读取组中的其他成员资格属性,跳过嵌套组,使用 Web 控制台处理所有数据库和其他设置。

例如,您希望 MemberOf 插件执行以下操作:

  • 组条目 读取成员和 uniqueMember 属性,以识别成员资格。
  • 将插件的范围设置为 dc=example,dc=com
  • 跳过嵌套组。
  • 搜索所有数据库中的用户条目。

前提条件

流程

  1. 导航到 LDAP 浏览器 菜单。
  2. 从插件列表中选择 MemberOf 插件。
  3. uniqueMember 属性添加到 Group Attribute 字段。
  4. 将插件的范围设置为 dc=example,dc=com

    1. Subtree Scope 字段中输入 dc=example,dc=com
    2. 单击下拉列表中的 Create "dc=example,dc=com "。

      security configuring the memberof 1

  5. 可选:设置要排除的子树。例如,您不希望插件在 ou=private,dc=example,dc=com 子树中工作:

    1. 输入 ou=private,dc=example,dc=comExclude Subtree 字段。
    2. 单击下拉列表中的 Create "ou=private,dc=example,dc=com "。
  6. 检查 All Backends,将插件配置为搜索所有数据库中的用户条目,而不是只搜索本地数据库。
  7. 选中 Skip Nested,以配置插件来跳过嵌套组。
  8. 单击 Save Config

3.1.5.6. 在服务器间共享 MemberOf 插件配置

默认情况下,每个服务器存储自己的 MemberOf 插件配置。通过插件的共享配置,您可以使用相同的设置,而无需在每个服务器上手动配置插件。目录服务器在 cn=config 后缀外存储共享配置并复制它。

例如,您要将插件共享配置存储在 cn=shared_MemberOf_config,dc=example,dc=com 条目中。

重要

启用共享配置后,插件会忽略 cn=MemberOf Plugin,cn=plugins,cn=config 插件条目中设置的所有参数,并且仅使用共享配置条目中的设置。

前提条件

  • 您可以在复制拓扑中的所有服务器上启用了 MemberOf 插件。详情请参阅 启用 MemberOf 插件

流程

  1. 在服务器上启用共享配置条目:

    # dsconf <instance_name> plugin memberof config-entry add "cn=shared_MemberOf_config,dc=example,dc=com" --attr memberOf --groupattr member
    
    Successfully created the cn=shared_MemberOf_config,dc=example,dc=com
    MemberOf attribute nsslapd-pluginConfigArea (config-entry) was set in the main plugin config
    Copy to Clipboard Toggle word wrap

    命令将 nsslapd-pluginConfigArea 属性设置为 cn=shared_MemberOf_config,dc=example,dc=com

  2. 重启实例:

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap
  3. 在复制拓扑中的其他服务器上启用共享配置,这些配置应使用共享配置:

    1. 设置存储共享配置条目的可分辨名称(DN):

      # dsconf -D "cn=Directory Manager" ldap://server2.example.com plugin memberof set --config-entry cn=shared_MemberOf_config,dc=example,dc=com
      Copy to Clipboard Toggle word wrap
    2. 重启实例:

      # dsctl <instance_name> restart
      Copy to Clipboard Toggle word wrap

验证

  1. 检查 MemberOf 插件是否使用共享配置:

    # dsconf <instance_name> plugin memberof show
    
    dn: cn=MemberOf Plugin,cn=plugins,cn=config
    cn: MemberOf Plugin
    ...
    nsslapd-pluginConfigArea: cn=shared_MemberOf_config,dc=example,dc=com
    ...
    Copy to Clipboard Toggle word wrap
  2. 可选:检查共享配置设置:

    # dsconf <instance_name> memberof config-entry show "cn=shared_MemberOf_config,dc=example,dc=com"
    
    dn: cn=shared_MemberOf_config,dc=example,dc=com
    cn: shared_MemberOf_config
    memberofattr: memberOf
    memberofgroupattr: member
    objectClass: top
    objectClass: extensibleObject
    Copy to Clipboard Toggle word wrap

3.1.5.7. 设置 MemberOf 插件的范围

如果您配置了几个后端或多个嵌套后缀,您可以使用 memberOfEntryScopememberOfEntryScopeExcludeSubtree 参数来设置 MemberOf 插件可以正常工作的后缀。

如果您将用户添加到组中,则 MemberOf 插件只有在用户和组中都位于插件范围内时,将 memberOf 属性添加到组中。

例如,以下流程将 MemberOf 插件配置为对 dc=example,dc=com 中的所有条目工作,但要排除 ou=private,dc=example,dc=com 中的条目。

前提条件

  • 您可以在复制拓扑中的所有服务器上启用了 MemberOf 插件。详情请参阅 启用 MemberOf 插件

流程

  1. 将 MemberOf 插件的 scope 值设置为 dc=example,dc=com

    # dsconf <instance_name> plugin memberof set --scope "dc=example,dc=com"
    Copy to Clipboard Toggle word wrap
  2. 排除 ou=private,dc=example,dc=com 中的条目:

    # dsconf <instance_name> plugin memberof set --exclude "ou=private,dc=example,com"
    Copy to Clipboard Toggle word wrap

    如果您使用范围 DN 参数将用户条目 移出范围

    • MemberOf 插件在组条目中更新 membership 属性(如 member )以删除用户 DN 值。
    • MemberOf 插件更新用户条目中的 memberOf 属性,以删除组 DN 值。

      注意

      在- -exclude 参数中设置的值的优先级高于 范围中设置的值。如果这两个参数中设置的范围都重叠,MemberOf 插件仅适用于非覆盖的目录条目。

有关为 MemberOf 插件设置范围的详情,请参阅使用 Web 控制台在每个服务器上配置 MemberOf 插件

MemberOf 插件根据 group 条目中的配置自动管理组成员条目中的 memberOf 属性。但是,您需要在以下情况中运行 fixup 任务,以避免在服务器插件管理以及用户条目中定义的实际成员资格之间的不一致:

  • 在启用 MemberOf 插件前,您已将组成员添加到组中。
  • 您可以在用户条目中手动编辑 memberOf 属性。
  • 您已将新用户条目导入或复制到已具有 memberOf 属性的服务器。

请注意,您只能 在本地运行 修复任务。在复制环境中,Directory 服务器会在 Directory 服务器复制更新的条目后更新其他服务器上的 memberOf 属性。

前提条件

  • 您可以在复制拓扑中的所有服务器上启用了 MemberOf 插件。详情请参阅 启用 MemberOf 插件

流程

  • 例如,要更新 dc=example,dc=com 条目和子项中的 memberOf 值,请运行:

    # dsconf <instance_name> plugin memberof fixup "dc=example,dc=com"
    Attempting to add task entry...
    Successfully added task entry
    Copy to Clipboard Toggle word wrap

    默认情况下,修复任务会在包含 inetUser,inetAdmin, 或 nsMemberOf 对象类的所有条目中更新 memberOf 值。

    如果您希望修复任务也可以用于包含其他对象类的条目,请使用 -f 过滤器选项:

    # dsconf <instance_name> plugin memberof fixup -f "(|(objectclass=inetuser)(objectclass=inetadmin)(objectclass=nsmemberof)(objectclass=nsmemberof)(objectclass=inetOrgPerson))" "dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    在这个版本中,任务会更新包含 inetUser,inetAdmin,nsMemberOf, 或 inetOrgPerson 对象类的所有条目中的 memberOf 值。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat