Red Hat Training

A Red Hat training course is available for RHEL 8

27.2. 在 CLI 中管理 IdM 权限

按照以下流程,使用命令行界面(CLI)管理身份管理(IdM)权限。

先决条件

流程

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

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

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

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

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

      注意

      不能对特权添加带有非默认绑定规则类型的权限。您也不能对非默认绑定规则类型设置特权中已存在的权限。

    • --right 列出了权限授予的权力,它替换了已弃用的 --permissions 选项。可用的值有 adddeletereadsearchcomparewriteall

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

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

      adddelete 是入门级操作(例如,删除用户、添加组等),而 readsearchcomparewrite 是属性级别操作:您可以写入 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 对给定组的成员设置目标过滤器。例如,要让拥有此权限的用户修改 engineers 组成员的登录 shell:

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

      $ 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 子树。