36.11. 使用 Ansible 为用户提供 ID 覆盖对 IdM 客户端上本地声音卡的访问权限
您可以使用 ansible-freeipa
组和
idoverrideuser
模块在 IdM 客户端上使身份管理(IdM)或 Active Directory (AD)用户成员。这会授予 IdM 或 AD 用户对主机上声音卡的特权访问权限。该流程使用
Default Trust View
ID 视图的示例,在第一个 playbook 任务中添加 aduser@addomain.com ID 覆盖。在下一个 playbook 任务中,在 IdM 中创建 音频 组,GID 为 63,它对应于 RHEL 主机上的本地 音频
组的 GID。同时 ,aduser@addomain.com ID 覆盖作为成员添加到 IdM 音频组中。
先决条件
-
您有访问要在其上执行流程第一部分的 IdM 客户端的
root
访问权限。在示例中,这是 client.idm.example.com。 您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已在 Ansible 控制器上安装了
ansible-freeipa
软件包。 - 您使用 RHEL 8.10 或更高版本。
- 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password
。
-
AD 林与 IdM 信任。在示例中,AD 域的名称是 addomain.com,以及 AD 用户的完全限定域名(FQDN),其存在于本地
音频
组中存在是 aduser@addomain.com。 -
目标节点(这是执行
ansible-freeipa
模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本的一部分。
流程
在 client.idm.example.com 上,将
[SUCCESS=merge]
添加到/etc/nsswitch.conf
文件中:[...] # Allow initgroups to default to the setting for group. initgroups: sss [SUCCESS=merge] files
确定本地
音频
组的 GID:$ getent group audio --------------------- audio:x:63
在 Ansible 控制节点上,创建一个带有任务的 add-aduser-to-audio-group.yml playbook,将 aduser@addomain.com 用户覆盖添加到 Default Trust View 中:
--- - name: Playbook to manage idoverrideuser hosts: ipaserver become: false tasks: - name: Add aduser@addomain.com user to the Default Trust View ipaidoverrideuser: ipaadmin_password: "{{ ipaadmin_password }}" idview: "Default Trust View" anchor: aduser@addomain.com
在同一 playbook 中使用另一个 playbook 任务,将组 音频 添加到 IdM 中,
GID
为 63。将 aduser idoverrideuser 添加到组中:- name: Add the audio group with the aduser member and GID of 63 ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: audio idoverrideuser: - aduser@addomain.com gidnumber: 63
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-aduser-to-audio-group.yml
验证
以 AD 用户身份登录 IdM 客户端:
$ ssh aduser@addomain.com@client.idm.example.com
验证 AD 用户的组成员资格:
$ id aduser@addomain.com uid=702801456(aduser@addomain.com) gid=63(audio) groups=63(audio)
其他资源
-
idoverrideuser 和 ipagroup
ansible-freeipa
上游文档 - 为 IdM 中的本地和远程组启用组合并