route1337.linux_users

Rol de Ansible - Usuarios de Linux

Este repositorio contiene el rol de Ansible para Usuarios de Linux (linux_users).

Qué hace este rol

Este rol de Ansible creará, actualizará y eliminará usuarios de Linux junto con sus claves SSH usando el inventario.

Cambios realizados:

  1. Crear grupos de gestión para los usuarios
    1. Crear un grupo sysadmins para usuarios sin contraseña en sudo
    2. Crear un grupo sysusers para usuarios sin acceso a sudo
    3. Crear un grupo svcaccounts para cuentas de servicio sin contraseña en sudo
  2. Gestionar el usuario root
    1. Gestionar la contraseña y las claves SSH del root
  3. Gestionar usuarios que no son root
    1. Crear, actualizar y eliminar cuentas de usuario
    2. Crear, actualizar y eliminar directorios personales de usuarios
    3. Gestionar claves SSH de los usuarios
    4. Gestionar la membresía de grupos de usuarios (se espera que se use uno de los grupos anteriores)

Advertencias

Hay algunas advertencias sobre este rol que se deben tener en cuenta:

  1. La contraseña del root debe estar pre-encriptada.
  2. Usar múltiples claves SSH se puede hacer de dos maneras debido al uso de exclusive: yes:
    1. Una sola cadena con caracteres de nueva línea entre las claves
    2. Apuntando a una URL de claves de GitHub
  3. Todos los usuarios que no son root no tendrán una contraseña ya que el acceso a sudo será sin contraseña y no se espera que tengan privilegios de inicio de sesión local.
  4. Los usuarios con un directorio personal en /home/ que no estén definidos en linux_users.users serán eliminados.
    1. Esta no es la mejor manera de gestionar usuarios no aprobados y se pretende mejorar en el futuro.

Variables

Las siguientes variables son obligatorias:

  1. linux_users.root_password - La contraseña pre-encriptada para el root.

Las siguientes variables son opcionales:

  1. linux_users.root_key - La(s) clave(s) SSH utilizadas por el root. Si no se define, se eliminará el archivo authorized_keys del root.
  2. linux_users.users - Objetos de usuario con las siguientes variables. Si no se define, los usuarios no serán gestionados.
    users:
      - username: pgibbons
        key: "ssh-rsa BLAH BLAH BLAH"
        comment: Peter Gibbons
        group: sysadmins
      - username: mbolton
        key: https://github.com/notthatmichaelbolton.keys
        comment: Michael Bolton
        group: sysusers
      - username: svc-ghactions
        key: ssh-rsa BLAH BLAH BLAH\nssh-rsa BLEH BLEH BLEH"
        comment: ServiceAccount-GitHub Actions
        group: svcaccounts
    

Las siguientes variables solo deben usarse en pruebas:

  1. is_kitchen - Si esta variable está definida, el rol en tests/roles crea usuarios de ejemplo para probar la eliminación de usuarios no aprobados. Además, el play user_cleanup.yml excluirá al usuario vagrant de la eliminación.

Pruebas

Este rol se prueba completamente a través de Test Kitchen utilizando datos de inventario de ejemplo contenidos en este repositorio.
TESTING.md contiene detalles e instrucciones para realizar pruebas.

Dona para apoyar este rol de Ansible

El código de código abierto de Route 1337 LLC depende en gran medida de donaciones. Si encuentras este rol de Ansible útil, por favor considera usar el botón de GitHub Sponsors para mostrar tu apoyo continuo.

¡Gracias por tu apoyo!

Acerca del proyecto

Extremely basic user account management for Ubuntu and CentOS servers

Instalar
ansible-galaxy install route1337.linux_users
Licencia
mit
Descargas
183
Propietario
Modern InfoSec, Zero Trust, and DevOps consulting for Web2 and Web3 clients.