hammadrauf.sudousers

Rol de Ansible: SudoUsers

Este rol crea cuentas de usuario a partir de una lista, con privilegios de sudo en sistemas operativos basados en Debian o RHEL. También añadirá la bandera NOPASSWD para que no se solicite la contraseña.

Requisitos

Cualquier máquina virtual o servidor físico basado en Debian o RHEL donde el usuario de Ansible tenga permisos de SUDO y esté instalado python3. Además, debe estar instalado el paquete "sudo".

Variables del Rol

Para una lista completa, por favor vean defaults/main.yml. Lista de Usuarios

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 }}"    

En el ejemplo anterior, el primer usuario es un superusuario y se le permite el comando sudo (superusuario). El segundo usuario es un usuario restringido, con 2 reglas de sudo que le permiten cambiar al primer usuario usando un comando como:

sudo su - user1id

En el ejemplo anterior, para el usuario2 solo se permite este 1 comando sudo.

Los nombres de usuario y contraseñas secretos deben guardarse en 'Secrets.yml'. Usa ansible-vault y hash de contraseñas. No commits Secrets.yml a Git/Control de Fuente.

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

Dependencias

Ninguna

Ejemplo de Playbook

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

Pruebas con Molecule

Lanza instancias de Podman fuera de Molecule/Ansible usando los siguientes comandos:

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

Hashing de Contraseña de Usuario en Linux

Ubuntu / Debian

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

CentOS / Fedora

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

Licencia

MIT

Información del Autor

Este rol fue creado el 10 de mayo de 2024 por Hammad Rauf.

Acerca del proyecto

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

Instalar
ansible-galaxy install hammadrauf.sudousers
Licencia
Unknown
Descargas
118
Propietario