taktus.users

Ansible Rolle: Benutzer

Build Status

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) - Wenn users_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 die uid 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 Variable users_default_shell konfiguriert werden, wenn du allen Benutzern dieselbe Shell geben möchtest, die aber anders als /bin/bash ist.
  • is_system_user - Auf True 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

Über das Projekt

User management role

Installieren
ansible-galaxy install taktus.users
GitHub Repository
Lizenz
mit
Downloads
76