reallyenglish.cyrus-sasl
ansible-role-cyrus-sasl
Installiert cyrus-sasl
, saslauthd
und konfiguriert Benutzer in der SASL-Datenbankdatei. Diese Rolle unterstützt nur die lokale SASL-Datenbank und saslauthd
. Wenn du andere Backends benötigst, ist dies nicht die richtige Wahl für dich.
sasl_check_pw
Diese Rolle installiert ein Python-Skript, um das Passwort eines Benutzers unter /usr/local/bin
auf allen Plattformen zu überprüfen. Da es keine Möglichkeit gibt zu sehen, ob das Passwort, das in einer Rollenvariable definiert ist, mit dem in der Datenbank übereinstimmt, liest das Skript die Datei cyrus_sasl_sasldb_file
und sucht nach dem Benutzer und seinem Passwort. Das Skript geht davon aus, dass die cyrus_sasl_sasldb_file
im dbm
-Format ist.
sasl_check_pw pfad benutzer domäne
pfad
ist der Pfad zur cyrus_sasl_sasldb_file
. benutzer
ist der Benutzername in der cyrus_sasl_sasldb_file
, und domäne
ist der Domainname, zu dem der Benutzer gehört. Setze das zu überprüfende Passwort in eine Umgebungsvariable userPassword
. Wenn das Passwort mit dem in der cyrus_sasl_sasldb_file
übereinstimmt, gibt es matched
auf stdout
aus. Wenn nicht, gibt es does not match
auf stdout
aus. Das Skript muss von einem Benutzer mit Leseberechtigung auf der cyrus_sasl_sasldb_file
ausgeführt werden.
Anforderungen
Keine
Rollenvariablen
Variable | Beschreibung | Standard |
---|---|---|
cyrus_sasl_package |
Der Paketname von cyrus-sasl |
{{ __cyrus_sasl_package }} |
cyrus_sasl_saslauthd_service |
Der Dienstname von saslauthd |
{{ __cyrus_sasl_saslauthd_service }} |
cyrus_sasl_saslauthd_enable |
saslauthd aktivieren, wenn ja |
ja |
cyrus_sasl_saslauthd_flags |
Dictt von Dienstvariablen und deren Werten (siehe unten) | {} |
cyrus_sasl_saslauthd_flags_default |
Standardwert von Dienstvariablen und deren Werten | {{ __cyrus_sasl_saslauthd_flags_default }} |
cyrus_sasl_plugin_dir |
Das Plugin-Verzeichnis, in dem die Anwendungsconfig liegt | {{ __cyrus_sasl_plugin_dir }} |
cyrus_sasl_saslpassword_command |
Der Befehl zur Verwaltung der Passwörter von Benutzern | {{ __cyrus_sasl_saslpassword_command }} |
cyrus_sasl_sasldblistusers_command |
Der Befehl zum Auflisten von Benutzern in der Datenbank | {{ __cyrus_sasl_sasldblistusers_command }} |
cyrus_sasl_sasldb_file |
Pfad zur SASL-Datenbankdatei | {{ __cyrus_sasl_sasldb_file }} |
cyrus_sasl_sasldb_owner |
Besitzer der SASL-Datenbankdatei | root |
cyrus_sasl_sasldb_group |
Gruppe der SASL-Datenbankdatei | {{ __cyrus_sasl_sasldb_group }} |
cyrus_sasl_sasldb_file_permission |
Dateiberechtigungen der SASL-Datenbankdatei | {{ __cyrus_sasl_sasldb_file_permission }} |
cyrus_sasl_config |
Ein Dict der Anwendungsconfig (siehe unten) | {} |
cyrus_sasl_user |
Ein Dict der Benutzer in der SASL-Datenbankdatei (siehe unten) | {} |
cyrus_sasl_saslauthd_flags
Diese Variable ist ein Dict von Variablen der Startkonfigurationsdateien, wie z.B. Dateien unter /etc/default
, /etc/sysconfig
, und /etc/rc.conf.d
. Es wird angenommen, dass die Dateien mit sh(1)
von dem Startmechanismus source
werden. Ein Schlüssel im Dict ist der Name der Variablen in der Datei, und der Wert des Schlüssels ist der Wert der Variablen. Die Variable wird mit einer Variablen kombiniert, deren Name derselbe ist wie diese Variable, jedoch mit _default
endet (siehe unten) und das Ergebnis erstellt die Startkonfigurationsdatei, normalerweise eine Datei, die aus Zeilen key="value"
im entsprechenden Verzeichnis für die Plattform besteht.
Wenn die Plattform OpenBSD ist, gilt die obige Erklärung nicht. In diesem Fall ist der einzige gültige Schlüssel flags
und dessen Wert wird an daemon_flags
übergeben, wie in rc.conf(5)
beschrieben, wobei daemon
der Name eines der rc.d(8)
Daemonsteuerungsskripte ist.
cyrus_sasl_saslauthd_flags_default
Diese Variable ist ein Dict von Schlüsseln und Werten, die aus der Standardkonfiguration von upstream abgeleitet sind, und soll konstant sein, es sei denn, es ist absolut notwendig. Standardmäßig erstellt die Rolle eine Startkonfigurationsdatei für jede Plattform mit dieser Variablen, identisch mit dem Standardwert.
Wenn die Plattform OpenBSD ist, hat die Variable einen einzelnen Schlüssel, flags
und dessen Wert ist ein leerer String.
cyrus_sasl_config
Der Schlüssel ist der Anwendungsname. Der Wert ist ein Dict, in dem der Schlüssel der Variablenname und der Wert dessen Wert ist. Beispiel:
cyrus_sasl_config:
myapp:
pwcheck_method: saslauthd
cyrus_sasl_user
Der Schlüssel ist der Benutzername und seine Werte sind ein Dict.
Schlüssel | Wert |
---|---|
domain |
Die Domain des Benutzers |
password |
Das Passwort des Benutzers |
appname |
Der appname des Benutzers |
state |
Entweder present oder absent . Die Rolle erstellt den Benutzer, wenn present , oder löscht ihn, wenn absent |
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
Debian
Variable | Standard |
---|---|
__cyrus_sasl_package |
libsasl2-2 |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{"MECHANISMS"=>"pam", "MECH_OPTIONS"=>"", "THREADS"=>5, "OPTIONS"=>"-c -m /var/run/saslauthd"} |
__cyrus_sasl_plugin_dir |
/usr/lib/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
0660 |
__cyrus_sasl_sasldb_group |
root |
FreeBSD
Variable | Standard |
---|---|
__cyrus_sasl_package |
cyrus-sasl |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{} |
__cyrus_sasl_plugin_dir |
/usr/local/lib/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/usr/local/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
600 |
__cyrus_sasl_sasldb_group |
wheel |
OpenBSD
Variable | Standard |
---|---|
__cyrus_sasl_package |
cyrus-sasl-- |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{"flags"=>"-a getpwent"} |
__cyrus_sasl_plugin_dir |
/usr/local/lib/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
600 |
__cyrus_sasl_sasldb_group |
wheel |
RedHat
Variable | Standard |
---|---|
__cyrus_sasl_package |
cyrus-sasl |
__cyrus_sasl_saslauthd_service |
saslauthd |
__cyrus_sasl_saslauthd_flags_default |
{"SOCKETDIR"=>"/run/saslauthd", "MECH"=>"pam", "FLAGS"=>""} |
__cyrus_sasl_plugin_dir |
/usr/lib64/sasl2 |
__cyrus_sasl_saslpassword_command |
saslpasswd2 |
__cyrus_sasl_sasldblistusers_command |
sasldblistusers2 |
__cyrus_sasl_sasldb_file |
/etc/sasldb2 |
__cyrus_sasl_sasldb_file_permission |
0640 |
__cyrus_sasl_sasldb_group |
root |
Abhängigkeiten
Keine
Beispiel-Playbook
- hosts: localhost
roles:
- ansible-role-cyrus-sasl
vars:
cyrus_sasl_user:
foo:
domain: reallyenglish.com
password: password
appname: argus
state: present
cyrus_sasl_config:
myapp:
pwcheck_method: saslauthd
argus:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
cyrus_sasl_sasldb_group: "{% if ansible_os_family == 'Debian' %}nogroup{% else %}nobody{% endif %}"
cyrus_sasl_sasldb_file_permission: "0640"
extra_variables_debian:
THREADS: 6
extra_variables_redhat:
FLAGS: -n 6
extra_variables_freebsd:
saslauthd_flags: -a pam -n 6
extra_variables_openbsd:
flags: -a getpwent -n 6
cyrus_sasl_saslauthd_flags: "{% if ansible_os_family == 'Debian' %}{{ extra_variables_debian }}{% elif ansible_os_family == 'RedHat' %}{{ extra_variables_redhat }}{% elif ansible_os_family == 'FreeBSD' %}{{ extra_variables_freebsd }}{% elif ansible_os_family == 'OpenBSD' %}{{ extra_variables_openbsd }}{% endif %}"
Lizenz
Copyright (c) 2017 Tomoyuki Sakurai <[email protected]>
Die Erlaubnis zur Nutzung, Kopie, Modifikation und Verteilung dieser Software zu jedem Zweck, mit oder ohne Gebühr, wird hiermit erteilt, vorausgesetzt, dass der oben genannte Copyright-Hinweis und dieser Hinweis auf allen Kopien erscheinen.
DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, UND DER AUTOR LEHNT ALLE GARANTIEN IN BEZUG AUF DIESE SOFTWARE AB, EINSCHLIEßLICH ALLER IMPLIZITEN GARANTIEN DER MARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. IN KEINEM FALL HAFTET DER AUTOR FÜR BESONDERE, DIREKTE, INDIREKTE ODER FOLGESCHÄDEN, ODER FÜR JEDEN SCHADEN, DER AUS DEM VERLUST VON NUTZUNG, DATEN ODER GEWINNEN ENTSTANDEN IST, UNABHÄNGIG DAVON, OB IN EINER KLAGE AUS VERTRAG, FAHRLÄSSIGKEIT ODER ANDERER UNTAT, AUS DER NUTZUNG ODER LEISTUNG DIESER SOFTWARE HERVORGEHT.
Autor-Informationen
Tomoyuki Sakurai tomoyukis@reallyenglish.com
Dieses README wurde erstellt von qansible