13.6. 为用户和主机定义自动组成员资格


13.6.1. IdM 中的自动组成员资格工作

13.6.1.1. 自动组成员资格是什么

通过使用自动组成员身份,您可以根据用户和组的属性自动分配用户和组。例如,您可以:
  • 根据员工的经理、位置或任何其他属性,将员工的用户条目划分为组。
  • 根据主机的类、位置或任何其他属性来划分主机。
  • 将所有用户或全部主机添加到单个全局组。

13.6.1.2. 自动组成员的好处

手动管理组成员开销
利用自动组成员身份,管理员不再手动将用户和组分配用户和组。
提高了用户和主机管理的一致性
利用自动组成员身份,根据严格定义和自动评估的标准,用户和主机分配到组中。
更轻松地管理基于组的设置
为组定义各种设置,然后应用到各个组成员,如 sudo 规则、自动挂载 或访问控制。使用自动组成员身份时,用户和主机会自动添加到指定组中,从而更加轻松地管理基于组的设置。

13.6.1.3. Automember 规则

在配置自动组成员身份时,管理员定义 自动成员规则。自动成员规则应用到特定的用户或主机组。它包括 用户或主机必须满足的条件 才能包含或排除在组中:
包含的条件
当用户或主机条目符合包含条件时,它将包含在组中。
排他条件
当用户或主机条目符合独占条件时,它不会 包含在组中。
条件被指定为 Perl 兼容的正则表达式(PCRE)格式的正则表达式。有关 PCRE 的详情,请参考 pcresyntax(3) man page。
IdM 在包含条件之前评估排他条件。在发生冲突时,排他条件优先于包含条件。

13.6.2. 添加自动成员规则

使用以下方法添加自动成员规则:
添加自动成员规则后:

Web UI:添加自动成员规则

  1. 选择 Identity Automember User group rulesHost group rules
  2. 点击 Add
  3. Automember rule 字段中,选择规则要应用的组。点 Add and Edit
  4. 定义一个或多个包含和独占条件。详情请查看 第 13.6.1.3 节 “Automember 规则”
    1. InclusiveExclusive 部分中,点 Add
    2. Attribute 字段中,选择所需的属性。
    3. Expression 字段中,定义正则表达式。
    4. 点击 Add
    例如,以下条件以其用户登录属性(uid)中具有 任何值(IANA)的所有用户为目标。

    图 13.5. 添加自动成员规则条件

    添加自动成员规则条件

命令行:添加自动成员规则

  1. 使用 ipa automember-add 命令添加自动成员规则。在提示时,指定:
    • 自动成员规则,与目标组名称匹配。
    • 分组 Type,它指定规则是否以用户组还是主机组为目标。要以用户组为目标,请输入 group。要以主机组为目标,请输入 hostgroup
    例如,要为名为 user_group 的用户组添加自动成员规则:
    $ ipa automember-add
    Automember Rule: user_group
    Grouping Type: group
    --------------------------------
    Added automember rule "user_group"
    --------------------------------
      Automember Rule: user_group
  2. 定义一个或多个包含和独占条件。详情请查看 第 13.6.1.3 节 “Automember 规则”
    1. 要添加条件,请使用 ipa automember-add-condition 命令。在提示时,指定:
      • 自动成员规则,与目标组名称匹配。
      • 属性 Key,用于指定过滤器将应用到的条目属性。例如,用户的 经理
      • 分组 Type,它指定规则是否以用户组还是主机组为目标。要以用户组为目标,请输入 group。要以主机组为目标,请输入 hostgroup
      • 包含 正则表达式和 显式 正则表达式,其将一个或多个条件指定为正则表达式。如果您只想指定一个条件,请在提示输入其它条件时按 Enter 键。
      例如,以下条件以其用户登录属性(uid)中具有 任何值(IANA)的所有用户为目标。
      $ ipa automember-add-condition
      Automember Rule: user_group
      Attribute Key: uid
      Grouping Type: group
      [Inclusive Regex]: .*
      [Exclusive Regex]:
      ----------------------------------
      Added condition(s) to "user_group"
      ----------------------------------
        Automember Rule: user_group
        Inclusive Regex: uid=.*
      ----------------------------
      Number of conditions added 1
      ----------------------------
    2. 要删除条件,请使用 ipa automember-remove-condition 命令。

例 13.5. 命令行:创建 Automember 规则以将所有条目添加到单个组中

通过为所有用户或主机条目包含的属性创建包含条件,如 cnfqdn,您可以确保以后创建的所有用户或主机将添加到单个组中。
  1. 创建组,如名为 all_hosts 的主机组。请参阅 第 13.2 节 “添加和删除用户或主机组”
  2. 为新主机组添加自动成员规则。例如:
    $ ipa automember-add
    Automember Rule: all_hosts
    Grouping Type: hostgroup
    -------------------------------------
    Added automember rule "all_hosts"
    -------------------------------------
      Automember Rule: all_hosts
  3. 添加以所有主机为目标的包含条件。在以下示例中,包含条件以 fqdn 属性中的任何值(IANA)的主机为目标:
    $ ipa automember-add-condition
    Automember Rule: all_hosts
    Attribute Key: fqdn
    Grouping Type: hostgroup
    [Inclusive Regex]: .*
    [Exclusive Regex]:
    ---------------------------------
    Added condition(s) to "all_hosts"
    ---------------------------------
      Automember Rule: all_hosts
      Inclusive Regex: fqdn=.*
    ----------------------------
    Number of conditions added 1
    ----------------------------
以后添加的所有主机将自动成为 all_hosts 组的成员。

例 13.6. 命令行:为同步 AD 用户创建自动成员规则

从 Active Directory (AD)同步的 Windows 用户共享 ntUser 对象类。通过创建一个以 objectclass 属性中带有 ntUser 的所有用户的自动成员条件,您可以确保以后创建的所有同步 AD 用户都包含在 AD 用户的通用组中。
  1. 为 AD 用户创建一个用户组,如 ad_users。请参阅 第 13.2 节 “添加和删除用户或主机组”
  2. 为新用户组添加自动成员规则。例如:
    $ ipa automember-add
    Automember Rule: ad_users
    Grouping Type: group
    -------------------------------------
    Added automember rule "ad_users"
    -------------------------------------
      Automember Rule: ad_users
  3. 添加包含条件以过滤 AD 用户。在以下示例中,inclusive 条件以 objectclass 属性中的 ntUser 值的所有用户为目标:
    $ ipa automember-add-condition
    Automember Rule: ad_users
    Attribute Key: objectclass
    Grouping Type: group
    [Inclusive Regex]: ntUser
    [Exclusive Regex]:
    -------------------------------------
    Added condition(s) to "ad_users"
    -------------------------------------
      Automember Rule: ad_users
      Inclusive Regex: objectclass=ntUser
    ----------------------------
    Number of conditions added 1
    ----------------------------
以后添加的所有 AD 用户将自动成为 ad_users 用户组的成员。

13.6.3. 将自动成员规则应用到现有用户和主机

Automember 规则自动应用到添加规则后创建的用户和主机条目。它们不会追溯应用到添加规则之前存在的条目。
要将自动成员规则应用到添加规则前存在的条目,请手动重建自动成员资格。重建自动成员身份重新评估所有现有自动成员规则,并将其应用于所有条目或特定条目。

Web UI:重建现有条目的自动成员身份

重新构建所有用户或所有主机的自动成员资格:
  1. 选择 Identity UsersHosts
  2. 单击 Actions Rebuild auto membership

    图 13.6. 为所有用户或主机重建自动成员身份

    为所有用户或主机重建自动成员身份
仅为单个用户或主机重建自动成员资格:
  1. 选择 Identity UsersHosts,然后单击所需的用户登录或主机名。
  2. 单击 Actions Rebuild auto membership

    图 13.7. 为单个用户或主机重建自动成员身份

    为单个用户或主机重建自动成员身份

命令行:为现有条目重建自动成员

要为所有用户重建自动成员资格,请使用 ipa automember-rebuild --type=group 命令:
$ ipa automember-rebuild --type=group
--------------------------------------------------------
Automember rebuild task finished. Processed (9) entries.
--------------------------------------------------------
要为所有用户重建自动成员资格,请使用 ipa automember-rebuild --type=hostgroup 命令。
要为指定用户或用户重建自动成员资格,请使用 ipa automember-rebuild --users=user 命令:
$ ipa automember-rebuild --users=user1 --users=user2
--------------------------------------------------------
Automember rebuild task finished. Processed (2) entries.
--------------------------------------------------------
要为指定主机或主机重建自动成员资格,请使用 ipa automember-rebuild --hosts=example.com 命令。

13.6.4. 配置默认自动成员组

配置了默认的 automember 组时,与任何 automember 规则不匹配的用户或主机条目将自动添加到 default 组。
  1. 使用 ipa automember-default-group-set 命令配置默认的自动成员组。在提示时,指定:
    • Default (fallback) Group,指定目标组名称。
    • Grouping Type,指定目标是用户组还是主机组。要以用户组为目标,请输入 group。要以主机组为目标,请输入 hostgroup
    例如:
    $ ipa automember-default-group-set
    Default (fallback) Group: default_user_group
    Grouping Type: group
    ---------------------------------------------------
    Set default (fallback) group for automember "default_user_group"
    ---------------------------------------------------
      Default (fallback) Group: cn=default_user_group,cn=groups,cn=accounts,dc=example,dc=com
  2. 要验证组是否已正确设置,请使用 ipa automember-default-group-show 命令。命令显示当前的默认的自动成员组。例如:
    $ ipa automember-default-group-show
    Grouping Type: group
      Default (fallback) Group: cn=default_user_group,cn=groups,cn=accounts,dc=example,dc=com
要删除当前的默认自动成员组,请使用 ipa automember-default-group-remove 命令。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.