media====== Regelmäßiger Nutzerexport ====== ===== Hintergrund ===== FabAccess (BFFH) nutzt eine eigene Datenbank um diverse Stati und Nutzerinformationen zu speichern. Diese beinhaltet auch die aktuellen Nutzerrechte sowie Passwörter (argon2 gehashed). Beim Neustart des Servers wird immer die users.toml neu eingelesen, vorhandene Benutzer werden überschrieben. Das heißt, auch die Passwörter, welche Nutzer uber die App ändern können, werden wieder zurück gesetzt. Evtl. kann man dieses System später per LDAP Integration abschaffen. Daran wird aber im Moment noch vom FabAccess Entwickler-Team gearbeitet. ===== Vorgehensweise ===== BFFH bietet eine Möglichkeit, per Kommandozeile die aktuellen Nutzerdaten, samt gehashtem Passwort, wieder in die users.toml zu exportieren. Es müsste ein Dienst auf dem Server installiert werden, welcher regelmäßig (alle 10 Minuten falls möglich, oder 4:00 Uhr morgens?) die Nutzer aus der Datenbank exportiert und zurück in die users.toml schreibt. Außerdem müsste dieser Dienst einfach pausierbar sein, wenn man Änderungen an der users.toml vornehmen möchte. Zum Export gibt es den Kommandozeilenbefehl `bffhd --verbose -c "$CFG" --dump-users "$USERS_TOML" --force` Hier ein Beispiel-Script, welches allerdings noch UNGETESTET ist! #!/bin/bash # Pfade zu den Konfigurationsdateien CFG="/etc/bffh/bffh.dhall" USERS_TOML="/tmp/users.toml" # Pfad, wohin die Benutzer gedumpt werden # Befehl zum Ausführen von bffhd mit --dump-users und --verbose command="bffhd --verbose -c \"$CFG\" --dump-users \"$USERS_TOML\" --force" # Befehl ausführen und Ausgabe erfassen output=$($command 2>&1) exit_code=$? if [ $exit_code -ne 0 ]; then echo "Fehler beim Ausführen des Backups:" echo "$output" exit $exit_code else echo "Backup erfolgreich durchgeführt:" echo "$output" fi