taktus.users
Ansible Rolle: Benutzer
Rolle zur Verwaltung von Benutzern auf einem System.
Rollen-Konfiguration
users_create_per_user_group
(Standard: wahr) - Beim Erstellen von Benutzern wird auch eine Gruppe mit demselben Benutzernamen erstellt und diese als primäre Gruppe des Benutzers festgelegt.users_group
(Standard: users) - Wennusers_create_per_user_group
nicht gesetzt ist, ist dies die primäre Gruppe für alle erstellten Benutzer.users_default_shell
(Standard: /bin/bash) - Die Standard-Shell, wenn für den Benutzer keine angegeben ist.users_create_homedirs
(Standard: wahr) - Erstelle Home-Verzeichnisse für neue Benutzer. Setze dies auf falsch, wenn du die Home-Verzeichnisse separat verwaltest.
Benutzer erstellen
Füge eine Benutzer-Variable hinzu, die die Liste der hinzuzufügenden Benutzer enthält. Ein guter Ort dafür ist group_vars/all
oder group_vars/groupname
, wenn du nur möchtest, dass die Benutzer auf bestimmten Maschinen sind.
Die folgenden Attribute sind für jeden Benutzer erforderlich:
username
- Der Benutzername des Benutzers.name
- Der vollständige Name des Benutzers (gecos-Feld).home
- Das zu erstellende Home-Verzeichnis des Benutzers (optional, Standard: /home/username).uid
- Die numerische Benutzer-ID des Benutzers (optional). Dies ist erforderlich für die UID-Konsistenz über Systeme hinweg.gid
- Die numerische Gruppen-ID für die Gruppe (optional). Andernfalls wird dieuid
verwendet.password
- Wenn ein Hash bereitgestellt wird, wird dieser verwendet. Andernfalls wird das Konto gesperrt.update_password
- Kann entweder 'always' oder 'on_create' sein.'always'
aktualisiert die Passwörter, wenn sie unterschiedlich sind. (Standard)'on_create'
setzt das Passwort nur für neu erstellte Benutzer.
group
- Optionale Überschreibung der primären Gruppe.groups
- Eine Liste von zusätzlichen Gruppen für den Benutzer.append
- Wenn ja, werden nur Gruppen hinzugefügt, nicht nur auf die Liste in Groups gesetzt (optional).profile
- Ein String-Block zur Festlegung benutzerdefinierter Shell-Profile.ssh_key
- Dies sollte eine Liste von SSH-Schlüsseln für den Benutzer sein (optional). Jeder SSH-Schlüssel sollte direkt enthalten und darf keine Zeilenumbrüche haben.generate_ssh_key
- Ob ein SSH-Schlüssel für den Benutzer generiert werden soll (optional, Standard: nein).
Darüber hinaus sind die folgenden Elemente für jeden Benutzer optional:
shell
- Die Shell des Benutzers. Standardmäßig ist dies /bin/bash. Der Standard kann mit der Variableusers_default_shell
konfiguriert werden, wenn du allen Benutzern dieselbe Shell geben möchtest, die aber anders als /bin/bash ist.is_system_user
- AufTrue
setzen, um einen Systembenutzer zu erstellen.
Beispiel:
---
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
Ein Passwort-Hash generieren:
# Auf Debian/Ubuntu (über das Paket "whois")
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL (Hinweis: dies erzeugt nur md5crypt. Obwohl besser als Klartext, sollte es nicht als vollständig sicher angesehen werden)
openssl passwd -1
# Python (Passwort- und Salt-Werte ändern)
python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALT\$')"
# Perl (Passwort- und Salt-Werte ändern)
perl -e 'print crypt("password","\$6\$SALT\$") . "\n"'
Benutzer löschen
Die Variable users_deleted
enthält eine Liste von Benutzern, die nicht mehr im System sein sollen, und diese werden beim nächsten Ansible-Durchlauf entfernt. Das Format ist dasselbe wie für hinzuzufügende Benutzer, aber das einzige erforderliche Feld ist username
. Es wird jedoch empfohlen, auch das Feld uid
zur Referenz beizubehalten, damit numerische Benutzer-IDs nicht versehentlich wiederverwendet werden.
Du kannst optional wählen, ob das Home-Verzeichnis und die Mail-Spool des Benutzers mit dem Parameter remove
entfernt werden sollen, und die Entfernung von Dateien mit dem Parameter force
erzwingen.
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
Abhängigkeiten
Keine.
Lizenz
MIT
ansible-galaxy install taktus.users