38.11. 使用 Ansible 为用户 ID 提供对 IdM 客户端上本地声卡的覆盖访问


您可以使用 ansible-freeipa groupidoverrideuser 模块,使身份管理(IdM)或活动目录(AD)用户成员成为 IdM 客户端上本地 audio 组的成员。这授予 IdM 或 AD 用户对主机上声卡的特权访问。流程使用在第一个 playbook 任务中添加了 aduser@addomain.com ID 覆盖的 Default Trust View ID 视图的示例。在下一个 playbook 任务中,在 IdM 中创建了一个 GID 为 63 的 audio 组,它对应 RHEL 主机上本地 audio 组的 GID。同时,aduser@addomain.com ID 覆盖作为成员添加到 IdM audio 组中。

先决条件

  • 您有访问要在其上执行流程第一部分的 IdM 客户端的 root 访问权限。在示例中,这是 client.idm.example.com
  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.15 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。
    • 您正在使用 RHEL 9.4 或更高版本。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了 ipaadmin_password
  • AD 林信任 IdM 。在示例中,AD 域的名称是 addomain.com,出现在本地 audio 组中的 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. 确定本地 audio 组的 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 任务,将 GID 为 63 的组 audio 添加到 IdM 中。将 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)

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.