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. 添加自动成员规则
使用以下方法添加自动成员规则:
- IdM Web UI,请查看 “Web UI:添加自动成员规则”一节
- 命令行,请查看 “命令行:添加自动成员规则”一节
添加自动成员规则后:
- 将来创建的所有条目都将成为指定组的成员。如果条目满足多个自动成员规则中指定的条件,则会将其添加到所有对应的组中。
- 现有条目 不会成为 指定组的成员。请参阅 第 13.6.3 节 “将自动成员规则应用到现有用户和主机” 了解更多信息。
Web UI:添加自动成员规则
- 选择
或 。 - 点击。
- 在 Automember rule 字段中,选择规则要应用的组。点 。
- 定义一个或多个包含和独占条件。详情请查看 第 13.6.1.3 节 “Automember 规则”。
- 在 Inclusive 或 Exclusive 部分中,点 。
- 在 Attribute 字段中,选择所需的属性。
- 在 Expression 字段中,定义正则表达式。
- 点击。
例如,以下条件以其用户登录属性(uid
)中具有任何值
(IANA)的所有用户为目标。图 13.5. 添加自动成员规则条件
命令行:添加自动成员规则
- 使用 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 - 定义一个或多个包含和独占条件。详情请查看 第 13.6.1.3 节 “Automember 规则”。
- 要添加条件,请使用 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 ---------------------------- - 要删除条件,请使用 ipa automember-remove-condition 命令。
例 13.5. 命令行:创建 Automember 规则以将所有条目添加到单个组中
通过为所有用户或主机条目包含的属性创建包含条件,如
cn
或 fqdn
,您可以确保以后创建的所有用户或主机将添加到单个组中。
- 创建组,如名为
all_hosts
的主机组。请参阅 第 13.2 节 “添加和删除用户或主机组”。 - 为新主机组添加自动成员规则。例如:
$ ipa automember-add Automember Rule:
all_hosts
Grouping Type:hostgroup
------------------------------------- Added automember rule "all_hosts" ------------------------------------- Automember Rule: all_hosts - 添加以所有主机为目标的包含条件。在以下示例中,包含条件以
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 用户的通用组中。
- 为 AD 用户创建一个用户组,如
ad_users
。请参阅 第 13.2 节 “添加和删除用户或主机组”。 - 为新用户组添加自动成员规则。例如:
$ ipa automember-add Automember Rule:
ad_users
Grouping Type:group
------------------------------------- Added automember rule "ad_users" ------------------------------------- Automember Rule: ad_users - 添加包含条件以过滤 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:重建现有条目的自动成员身份
重新构建所有用户或所有主机的自动成员资格:
- 选择
或 。 - 单击
。 图 13.6. 为所有用户或主机重建自动成员身份
仅为单个用户或主机重建自动成员资格:
- 选择
或 ,然后单击所需的用户登录或主机名。 - 单击
。 图 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 组。
- 使用 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 - 要验证组是否已正确设置,请使用 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 命令。