Red Hat Training

A Red Hat training course is available for RHEL 8

24.2. 在 CLI 中管理 IdM 权限

本节论述了如何使用命令行界面(CLI)管理身份管理(IdM)权限。

先决条件

流程

  1. 使用 ipa permission-add 命令创建新的权限条目。
    例如,添加名为 dns admin 的权限:

    $ ipa permission-add "dns admin"
  2. 使用以下选项指定权限属性:

    • --bindtype 指定 bind 规则类型。此选项接受 all匿名 和权限 参数。权限 绑定类型表示只有通过角色授予此权限的用户才能执行该权限。
      例如:

      $ ipa permission-add "dns admin" --bindtype=all

      如果没有指定 --bindtype,则 权限 是默认值。

      注意

      无法通过非默认绑定规则类型向 权限添加权限。您也不能将特权中已存在的权限设置为非默认绑定规则类型。

    • --right 列出权限授予的权限,它替换了已弃用的 --permissions 选项。可用的值有 adddelete读取搜索比较写入全部

      您可以使用多个 --right 选项或使用大括号内以逗号分隔的列表来设置多个属性。例如:

      $ ipa permission-add "dns admin" --right=read --right=write
      $ ipa permission-add "dns admin" --right={read,write}
      注意

      添加 和删除 入门级操作(例如删除用户、添加组等),而 读取搜索比较写入 则是更多属性级别:您可以写入 userCertificate,但不能读取 userPassword

    • --attrs 提供授予权限的属性列表。
      您可以使用多个 --attrs 选项或通过在大括号内以逗号分隔的列表列出选项,从而设置多个属性。例如:

      $ ipa permission-add "dns admin" --attrs=description --attrs=automountKey
      $ ipa permission-add "dns admin" --attrs={description,automountKey}

      通过 --attrs 提供的属性必须存在,并且是给定对象类型的允许属性,否则 命令会失败并显示架构语法错误。

    • --type 定义权限应用到的条目对象类型,如用户、主机或服务。每种类型都有自己的一组允许的属性。
      例如:

      $ ipa permission-add "manage service" --right=all --type=service --attrs=krbprincipalkey --attrs=krbprincipalname --attrs=managedby
    • --subtree 提供子树条目;然后,过滤器以这个子树条目下的每个条目为目标。提供现有的子树条目;-- subtree 不接受通配符或不存在的域名(DN)。在 目录中包括 DN。
      因为 IdM 使用简化的扁平目录树结构,所以 --subtree 可用于将某些类型的条目作为目标,如自动挂载位置,它们是容器或父条目供其他配置使用。例如:

      $ ipa permission-add "manage automount locations" --subtree="ldap://ldap.example.com:389/cn=automount,dc=example,dc=com" --right=write --attrs=automountmapname --attrs=automountkey --attrs=automountInformation
      注意

      type --subtree 选项是互斥的:您可以看到 --type 中包含 过滤器是 --subtree 的 简化,目的是使管理员的工作更为简单。

    • --filter 使用 LDAP 过滤器来识别权限应用到的条目。
      IdM 自动检查给定过滤器的有效性。该过滤器可以是任何有效的 LDAP 过滤器,例如:

      $ ipa permission-add "manage Windows groups" --filter="(!(objectclass=posixgroup))" --right=write --attrs=description
    • --memberOf 检查组是否存在后,将目标过滤器设置为 给定组的成员。例如,要让拥有此权限的用户修改 engineer 组成员的登录 shell:

      $ ipa permission-add ManageShell --right="write" --type=user --attr=loginshell --memberof=engineers
    • --Target Group 在检查组存在后将目标设置为指定的用户组。例如,要让那些拥有权限的学员在 engineer 组中写入 member 属性(这样他们可以添加或删除成员):

      $ ipa permission-add ManageMembers --right="write" --subtree=cn=groups,cn=accounts,dc=example,dc=test --attr=member --targetgroup=engineers
    • 另外,您还可以指定目标域名(DN):

      • --target 指定要将权限应用到的 DN。可接受通配符.
      • --targetto 指定条目可移动到的 DN 子树。
      • --targetfrom 指定可从中移动条目的 DN 子树。