10.4. 使用 RHEL 系统角色应用自定义 sudoers 配置


您可以使用 sudo RHEL 系统角色在受管节点上应用自定义 sudoers 配置。这样,您可以定义哪些用户可以在哪些主机上运行哪些命令,从而提高配置效率和更精细的控制。

先决条件

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: "Configure sudo"
      hosts: managed-node-01.example.com
      tasks:
        - name: "Apply custom /etc/sudoers configuration"
          ansible.builtin.include_role:
            name: rhel-system-roles.sudo
          vars:
            sudo_sudoers_files:
              - path: "/etc/sudoers"
                user_specifications:
                  - users:
                      - <user_name>
                    hosts:
                      - <host_name>
                    commands:
                      - <path_to_command_binary>

    playbook 中指定的设置包括:

    users
    适用于该规则的用户列表。
    主机
    适用于该规则的主机列表。对于所有主机,您可以使用 ALL
    commands

    适用于该规则的命令列表。对于所有命令,您可以使用 ALL

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.sudo/README.md 文件。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  1. 在受管节点上,验证 playbook 是否应用了新规则。

    # cat /etc/sudoers | tail -n1
    <user_name> <host_name>= <path_to_command_binary>

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.sudo/README.md file
  • /usr/share/doc/rhel-system-roles.sudo/sudo/ directory
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.