route1337.linux_users

Rôle Ansible - Utilisateurs Linux

Ce dépôt contient le rôle Ansible pour les utilisateurs Linux (linux_users).

Que fait ce rôle

Ce rôle Ansible va créer, mettre à jour et supprimer des utilisateurs Linux ainsi que leurs clés SSH en utilisant l'inventaire.

Modifications effectuées :

  1. Créer des groupes de gestion pour les utilisateurs
    1. Créer un groupe sysadmins pour les utilisateurs sudo sans mot de passe
    2. Créer un groupe sysusers pour les utilisateurs non-sudo
    3. Créer un groupe svcaccounts pour les comptes de service avec sudo sans mot de passe
  2. Gérer l'utilisateur root
    1. Gérer le mot de passe et les clés SSH de root
  3. Gérer les utilisateurs non-root
    1. Créer, Mettre à jour, Supprimer des comptes utilisateurs
    2. Créer, Mettre à jour, Supprimer des répertoires personnels d'utilisateurs
    3. Gérer les clés SSH des utilisateurs
    4. Gérer l'appartenance aux groupes des utilisateurs (On s'attend à utiliser l'un des groupes ci-dessus)

Avertissements

Il y a quelques points à prendre en compte concernant ce rôle :

  1. Le mot de passe de root doit être pré-encrypté
  2. L'utilisation de plusieurs clés SSH peut se faire de deux manières à cause de exclusive: yes :
    1. une seule chaîne avec des caractères de nouvelle ligne entre les clés
    2. Un lien vers une URL de clés GitHub
  3. Tous les utilisateurs non-root n'auront pas de mot de passe car sudo sera sans mot de passe et ils ne sont pas censés avoir de privilèges de connexion locale
  4. Les utilisateurs avec un répertoire personnel dans /home/ qui ne sont pas définis dans linux_users.users seront supprimés
    1. Ce n'est pas la meilleure façon de gérer les utilisateurs non approuvés, et cela sera amélioré à l'avenir

Variables

Les variables suivantes sont requises :

  1. linux_users.root_password - Le mot de passe pré-encrypté pour root

Les variables suivantes sont optionnelles :

  1. linux_users.root_key - Les clés SSH utilisées par root. Si non définies, le fichier authorized_keys de root est supprimé
  2. linux_users.users - Objets utilisateur avec les variables suivantes. Si non définis, les utilisateurs ne sont pas gérés
    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
    

Les variables suivantes devraient être utilisées uniquement pour les tests :

  1. is_kitchen - Si cette variable est définie, le(s) rôle(s) dans tests/roles créent des utilisateurs d'exemple pour le test de suppression d'utilisateurs non approuvés. De plus, le jeu de tâches user_cleanup.yml exempt l'utilisateur vagrant de la suppression.

Tests

Ce rôle est entièrement testé via Test Kitchen à l'aide de données d'inventaire d'exemple contenues dans ce dépôt.
TESTING.md contient des détails et des instructions pour les tests.

Faites un don pour soutenir ce rôle Ansible

Le code open source de Route 1337 LLC dépend beaucoup des dons. Si vous trouvez ce rôle Ansible utile, merci de considérer l'utilisation du bouton GitHub Sponsors pour montrer votre soutien continu.

Merci pour votre soutien !

À propos du projet

Extremely basic user account management for Ubuntu and CentOS servers

Installer
ansible-galaxy install route1337.linux_users
Licence
mit
Téléchargements
183
Propriétaire
Modern InfoSec, Zero Trust, and DevOps consulting for Web2 and Web3 clients.