#!/bin/bash source ./data_utils.sh # Abfrage des Verschlüsselungsschlüssels get_encryption_key() { while true; do key=$(dialog --insecure --passwordbox "Bitte geben Sie den Verschlüsselungsschlüssel ein:" 10 50 3>&1 1>&2 2>&3) exit_status=$? if [[ $exit_status -ne 0 ]]; then dialog --msgbox "Abbruch! Kein Schlüssel eingegeben." 10 50 exit 1 fi # Zweite Abfrage zur Bestätigung confirm_key=$(dialog --insecure --passwordbox "Bestätigen Sie den Verschlüsselungsschlüssel:" 10 50 3>&1 1>&2 2>&3) exit_status=$? if [[ $exit_status -ne 0 ]]; then dialog --msgbox "Abbruch! Bestätigung nicht abgeschlossen." 10 50 exit 1 fi # Schlüsselvergleich if [[ "$key" == "$confirm_key" ]]; then echo "$key" return else dialog --msgbox "Die Schlüssel stimmen nicht überein. Bitte erneut versuchen." 10 50 fi done } # Schlüssel global abfragen ENCRYPTION_KEY=$(get_encryption_key) # Hauptmenü while true; do choice=$(dialog --menu "Benutzer- und Gruppenverwaltung" 20 50 12 \ 1 "Benutzer hinzufügen" \ 2 "Benutzer löschen" \ 3 "Benutzer zu Gruppe hinzufügen" \ 4 "Benutzer aus Gruppe entfernen" \ 5 "Benutzer anzeigen" \ 6 "Gruppen anzeigen" \ 7 "Gruppe hinzufügen" \ 8 "Gruppe löschen" \ 9 "Änderungen ins System schreiben" \ 10 "Änderungen auf entfernten Server schreiben" \ 11 "Beenden" 3>&1 1>&2 2>&3) case $choice in 1) ./add_user.sh "$ENCRYPTION_KEY" ;; 2) ./delete_user.sh ;; 3) ./add_user_to_group.sh ;; 4) ./remove_user_from_group.sh ;; 5) ./list_users.sh ;; 6) ./list_groups.sh ;; 7) ./add_group.sh ;; 8) ./delete_group.sh ;; 9) ./apply_changes.sh "$ENCRYPTION_KEY" ;; 10) ./apply_changes_to_remote_server.sh "$ENCRYPTION_KEY" ;; 11) break ;; *) dialog --msgbox "Ungültige Auswahl!" 10 30 ;; esac done