46.2. 使用 CLI 在 IdM 域中配置 HBAC 规则
要为基于主机的访问控制配置域,请完成以下步骤:
- 在 IdM CLI 中创建 HBAC 规则。
- 测试新的 HBAC 规则。
-
禁用默认的
allow_allHBAC 规则。
在创建自定义 HBAC 规则前,不要禁用 allow_all 规则。如果您在创建自定义规则前禁用了它,则会拒绝所有用户对所有主机的访问。
46.2.1. 在 IdM CLI 中创建 HBAC 规则 复制链接链接已复制到粘贴板!
要使用 IdM CLI 为基于主机的访问控制配置域,请按照以下步骤操作。出于本示例的目的,流程展示了如何授予单个用户 sysadmin 使用任何服务访问域中的所有系统。
IdM 将用户的主组存储为 gidNumber 属性的数字值,而不是 IdM 组对象的链接。因此,HBAC 规则只能引用用户的补充组,而不是其主组。
先决条件
- 用户 sysadmin 在 IdM 中存在。
流程
使用
ipa hbacrule-add命令添加规则。$ ipa hbacrule-add Rule name: rule_name --------------------------- Added HBAC rule "rule_name" --------------------------- Rule name: rule_name Enabled: TRUE要将 HBAC 规则只应用到 sysadmin 用户,请使用
ipa hbacrule-add-user命令。$ ipa hbacrule-add-user --users=sysadmin Rule name: rule_name Rule name: rule_name Enabled: True Users: sysadmin ------------------------- Number of members added 1 -------------------------注意要将 HBAC 规则应用到所有用户,请使用
ipa hbacrule-mod命令,并指定所有用户类别--usercat=all。请注意,如果 HBAC 规则与单个用户或组关联,ipa hbacrule-mod --usercat=all会失败。在这种情况下,使用ipa hbacrule-remove-user命令删除用户和组。指定目标主机。要将 HBAC 规则应用到所有主机,请使用
ipa hbacrule-mod命令,并指定所有主机类别:$ ipa hbacrule-mod rule_name --hostcat=all ------------------------------ Modified HBAC rule "rule_name" ------------------------------ Rule name: rule_name Host category: all Enabled: TRUE Users: sysadmin注意如果 HBAC 规则与单个主机或组关联,
ipa hbacrule-mod --hostcat=all会失败。在这种情况下,使用ipa hbacrule-remove-host命令删除主机和组。指定目标 HBAC 服务。要将 HBAC 规则应用到所有服务,请使用
ipa hbacrule-mod命令,并指定所有服务类别:$ ipa hbacrule-mod rule_name --servicecat=all ------------------------------ Modified HBAC rule "rule_name" ------------------------------ Rule name: rule_name Host category: all Service category: all Enabled: True Users: sysadmin注意如果 HBAC 规则与单个服务或组关联,
ipa hbacrule-mod --servicecat=all会失败。在这种情况下,使用ipa hbacrule-remove-service命令删除服务和组。
验证
验证 HBAC 规则是否已正确添加。
-
使用
ipa hbacrule-find命令验证 HBAC 规则是否在 IdM 中存在。 -
使用
ipa hbacrule-show命令验证 HBAC 规则的属性。
-
使用