Red Hat Training

A Red Hat training course is available for RHEL 8

14.13. 使用 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 库存储了 ipaadmin_password
  • AD 林与 IdM 信任。在示例中,AD 域的名称是 addomain.com,以及 AD 用户的完全限定域名(FQDN),其存在于本地 音频 组中存在是 aduser@addomain.com
  • 目标节点(这是执行 ansible-freeipa 模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本的一部分。

流程

  1. client.idm.example.com 上,将 [SUCCESS=merge] 添加到 /etc/nsswitch.conf 文件中:

    [...]
    # Allow initgroups to default to the setting for group.
    initgroups: sss [SUCCESS=merge] files
  2. 确定本地 音频 组的 GID:

    $ getent group audio
    ---------------------
    audio:x:63
  3. 在 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
  4. 在同一 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
  5. 保存该文件。
  6. 运行 Ansible playbook。指定 playbook 文件、存储密码的文件保护 secret.yml 文件以及清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory add-aduser-to-audio-group.yml

验证

  1. 以 AD 用户身份登录 IdM 客户端:

    $ ssh aduser@addomain.com@client.idm.example.com
  2. 验证 AD 用户的组成员资格:

    $ id aduser@addomain.com
    uid=702801456(aduser@addomain.com) gid=63(audio) groups=63(audio)

其它资源