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