hammadrauf.sudousers

Ansible 角色:SudoUsers

此角色根据列表创建用户账户,并在基于 Debian 或 RHEL 的操作系统上赋予 sudo 权限。它还会添加 NOPASSWD 标志,以便不需要输入密码。

要求

任何安装了 Python3 且 Ansible 用户具有 SUDO 权限的 Debian 或 RHEL 基虚拟机或物理服务器。并且必须安装包“sudo”。

角色变量

完整列表请查看 defaults/main.yml。 用户列表

su_users:
  - username: "{{ su_vault_vmuser1 }}"
    password: "{{ su_vault_vmpwd1 }}"
    is_super_user: true
    sudo_rules: []    
  - username: "{{ su_vault_vmuser2 }}"
    password: "{{ su_vault_vmpwd2 }}"
    is_super_user: false
    sudo_rules:
      - "ALL=(ALL)   NOPASSWD: /usr/bin/su - {{ su_vault_vmuser1 }}"
      - "ALL=(root)   NOPASSWD: /bin/su - {{ su_vault_vmuser1 }}"    

在上面的示例中,第一个用户是超级用户,允许使用 sudo 命令(超级用户)。第二个用户是受限用户,具有两个 sudo 规则,允许他/她使用以下命令切换到第一个用户:

sudo su - user1id

在上述示例中,对于用户2,仅此一个 sudo 命令是被允许的。

秘密用户名和密码应存储在 'Secrets.yml' 中。使用 ansible-vault 和密码哈希。请勿将 Secrets.yml 提交到 Git/源控制。

su_vault_vmuser1: user01
su_vault_vmpwd1: user01-password-hashed
su_vault_vmuser2: user02
su_vault_vmpwd2: user02-password-hashed

依赖

示例剧本

    - hosts: servers
      roles:
         - role: hammadrauf.sudousers

使用 Molecule 测试

通过以下命令在 Molecule/Ansible 之外启动 Podman 实例:

podman run -d --name debian12 --hostname debian12 -it docker.io/hammadrauf/dockerdeb12:latest sleep infinity & wait
podman run -d --name fedora40 --hostname fedora40 -it docker.io/hammadrauf/fedora40:latest
podman run -d --name ubuntu --hostname ubuntu -it docker.io/hammadrauf/ubuntunoble:latest sleep infinity & wait

Linux 用户密码哈希

Ubuntu / Debian

$ sudo apt update
$ sudo apt install whois 
$ mkpasswd --method="sha-512" --salt="Thisisarandomsaltingstring"
密码: 
$6$ieMLxPFShvi6rao9$XEAU9ZDvnPtL.sDuSdRi6M79sgD9254b/0wZvftBNvMOjj3pHJBCIe04x2M.JA7gZ7MwpBWat1t4WQDFziZPw1

CentOS / Fedora

$ sudo dnf install expect
$ mkpasswd --method="sha-512" --salt="Thisisarandomsaltingstring"
密码: 
$6$ieMLxPFShvi6rao9$XEAU9ZDvnPtL.sDuSdRi6M79sgD9254b/0wZvftBNvMOjj3pHJBCIe04x2M.JA7gZ7MwpBWat1t4WQDFziZPw1

许可证

MIT

作者信息

此角色由 Hammad Rauf 于 2024 年 5 月 10 日创建。

关于项目

Debian/RHEL creation of Super User with sudo permissions. Also sets the NOPASSWD flag so that Password is not asked on sudo usage.

安装
ansible-galaxy install hammadrauf.sudousers
许可证
Unknown
下载
118
拥有者