30.2. 在 CLI 中管理 IdM 权限
按照以下流程,使用命令行界面(CLI)管理身份管理(IdM)权限。
先决条件
- 管理 IdM 或 用户管理员 角色的管理员特权。
- 一个活跃的 Kerberos 票据。详情请参阅 使用 kinit 手动登录到 IdM。
步骤
使用
ipa permission-add
命令创建新的权限条目。
例如,添加名为 dns admin 的权限:$ ipa permission-add "dns admin"
使用以下选项指定权限的属性:
--bindtype
指定绑定规则类型。此选项接受all
、anonymous
和permission
参数。permission
bindtype 表示只有通过角色授予了此权限的用户才能执行它。
例如:$ ipa permission-add "dns admin" --bindtype=all
如果没有指定
--bindtype
,则permission
是默认值。注意不能对特权添加带有非默认绑定规则类型的权限。您也不能对非默认绑定规则类型设置特权中已存在的权限。
--right
列出了权限授予的权力,它替换了已弃用的--permissions
选项。可用的值有add
、delete
、read
、search
、compare
、write
、all
。您可以使用多个
--right
选项或使用大括号内以逗号分隔的列表来设置多个属性。例如:$ ipa permission-add "dns admin" --right=read --right=write
$ ipa permission-add "dns admin" --right={read,write}
注意add
和delete
是条目级操作(例如,删除用户、添加组等),而read
、search
、compare
和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
对给定组的成员设置目标过滤器。例如,要让拥有此权限的用户修改 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 子树。
-