#!/bin/bash USER_LIST="encrypted_users.list" # Initialisiert die Benutzer- und Gruppendatei, falls sie nicht existiert oder unvollständig ist initialize_user_list() { if [[ ! -f "$USER_LIST" ]]; then echo -e "[users]\n\n[groups]\nfileserver:aktiv" >"$USER_LIST" fi # Prüft und fügt fehlende Sektionen hinzu if ! grep -q "\[users\]" "$USER_LIST"; then sed -i '1i\[users]\n' "$USER_LIST" fi if ! grep -q "\[groups\]" "$USER_LIST"; then echo -e "\n[groups]\nfileserver:aktiv" >>"$USER_LIST" elif ! grep -q "^fileserver:" "$USER_LIST"; then # Fügt die Gruppe fileserver hinzu, falls sie fehlt echo "fileserver:aktiv" >>"$USER_LIST" fi } # Liest Benutzer aus der Datei read_users() { awk '/\[users\]/ {flag=1; next} /\[groups\]/ {flag=0} flag' "$USER_LIST" | grep -v "^\s*$" } # Liest Gruppen aus der Datei read_groups() { awk '/\[groups\]/ {flag=1; next} flag' "$USER_LIST" | grep -v "^\s*$" } # Fügt einen Benutzer hinzu (oder aktualisiert ihn, falls er gelöscht wurde) add_user_to_file() { local username=$1 local uid=$2 local password=$3 local groups=$4 local status=$5 # Entfernt bestehenden Eintrag des Benutzers sed -i "/^$username:/d" "$USER_LIST" # Fügt den Benutzer in die Sektion [users] ein sed -i "/\[users\]/a $username:$uid:$password:$groups:$status" "$USER_LIST" } # Fügt eine Gruppe hinzu add_group_to_file() { local groupname=$1 if ! grep -q "^$groupname:" <(read_groups); then echo "$groupname:aktiv" >>"$USER_LIST" fi }