taktus.users
Rôle Ansible : utilisateurs
Rôle pour gérer les utilisateurs sur un système.
Configuration du rôle
users_create_per_user_group
(par défaut : true) - Lors de la création d'utilisateurs, crée également un groupe avec le même nom d'utilisateur et fait de ce groupe le groupe principal de l'utilisateur.users_group
(par défaut : users) - Siusers_create_per_user_group
n'est pas défini, alors ceci est le groupe principal pour tous les utilisateurs créés.users_default_shell
(par défaut : /bin/bash) - le shell par défaut s'il n'est pas spécifié pour l'utilisateur.users_create_homedirs
(par défaut : true) - Crée des répertoires personnels pour les nouveaux utilisateurs. Mettez cela à false si vous gérez les répertoires personnels séparément.
Création d'utilisateurs
Ajoutez une variable users
contenant la liste des utilisateurs à ajouter. Un bon endroit pour cela est dans group_vars/all
ou group_vars/groupname
si vous souhaitez que les utilisateurs soient uniquement sur certaines machines.
Les attributs suivants sont requis pour chaque utilisateur :
username
- Le nom d'utilisateur de l'utilisateur.name
- Le nom complet de l'utilisateur (champ gecos).home
- Le répertoire personnel de l'utilisateur à créer (facultatif, par défaut /home/username).uid
- L'identifiant utilisateur numérique pour l'utilisateur (facultatif). Ceci est requis pour la cohérence des uid à travers les systèmes.gid
- L'identifiant de groupe numérique pour le groupe (facultatif). Sinon, leuid
sera utilisé.password
- Si un hachage est fourni, celui-ci sera utilisé, sinon le compte sera verrouillé.update_password
- Cela peut être soit 'always' ou 'on_create''always'
mettra à jour les mots de passe s'ils diffèrent. (par défaut)'on_create'
ne définira le mot de passe que pour les utilisateurs nouvellement créés.
group
- Remplacement facultatif du groupe principal.groups
- Une liste de groupes supplémentaires pour l'utilisateur.append
- Si oui, cela n'ajoutera que des groupes, sans les définir uniquement sur la liste dans groups (facultatif).profile
- Un bloc de chaîne pour définir des profils de shell personnalisés.ssh_key
- Cela devrait être une liste de clés SSH pour l'utilisateur (facultatif). Chaque clé SSH doit être incluse directement et ne doit pas contenir de nouvelles lignes.generate_ssh_key
- Si une clé SSH doit être générée pour l'utilisateur (facultatif, par défaut non).
En plus, les éléments suivants sont optionnels pour chaque utilisateur :
shell
- Le shell de l'utilisateur. Cela par défaut à /bin/bash. Le défaut est configurable en utilisant la variableusers_default_shell
si vous souhaitez donner à tous les utilisateurs le même shell, mais qu'il est différent de /bin/bash.is_system_user
- Défini surTrue
pour créer un utilisateur système.
Exemple :
---
users:
- username: foo
name: Foo Bar
groups: ['admin','systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
groups_to_create:
- name: developers
gid: 20000
Génération d'un hachage de mot de passe :
# Sur Debian/Ubuntu (via le package "whois")
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL (note : cela ne fera que md5crypt. Bien que mieux que du texte brut, cela ne doit pas être considéré comme totalement sécurisé)
openssl passwd -1
# Python (changer les valeurs de mot de passe et de sel)
python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALT\$')"
# Perl (changer les valeurs de mot de passe et de sel)
perl -e 'print crypt("password","\$6\$SALT\$") . "\n"'
Suppression d'utilisateurs
La variable users_deleted
contient une liste d'utilisateurs qui ne doivent plus être dans le système, et ceux-ci seront supprimés lors de la prochaine exécution d'ansible. Le format est le même que pour les utilisateurs à ajouter, mais le seul champ requis est username
. Cependant, il est recommandé de conserver également le champ uid
pour référence afin que les identifiants utilisateurs numériques ne soient pas accidentellement réutilisés.
Vous pouvez choisir de supprimer le répertoire personnel de l'utilisateur et la spool de mails avec le paramètre remove
, et forcer la suppression des fichiers avec le paramètre force
.
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
Dépendances
Aucune.
Licence
MIT
ansible-galaxy install taktus.users