#!/bin/bash source ./data_utils.sh add_user() { initialize_user_list # Benutzername abfragen username=$(dialog --inputbox "Benutzernamen eingeben:" 10 50 3>&1 1>&2 2>&3) if [[ -z "$username" ]]; then dialog --msgbox "Der Benutzername darf nicht leer sein." 10 30 return fi # Überprüfen, ob der Benutzer existiert existing_user=$(grep "^$username:" <(read_users)) if [[ -n "$existing_user" ]]; then if echo "$existing_user" | grep -q ":aktiv$"; then dialog --msgbox "Benutzer $username existiert bereits." 10 30 return fi # Benutzer ist gelöscht, wird wieder aktiviert uid=$(echo "$existing_user" | cut -d':' -f2) dialog --msgbox "Benutzer $username war gelöscht und wird wiederhergestellt." 10 30 else # Nächste verfügbare UID berechnen uid=$(($(read_users | cut -d':' -f2 | sort -n | tail -1) + 1)) if [[ -z "$uid" || "$uid" -lt 2000 ]]; then uid=2000 fi fi # Passwort abfragen password=$(dialog --insecure --passwordbox "Passwort eingeben:" 10 50 3>&1 1>&2 2>&3) password_confirm=$(dialog --insecure --passwordbox "Passwort erneut eingeben:" 10 50 3>&1 1>&2 2>&3) if [[ "$password" != "$password_confirm" ]]; then dialog --msgbox "Passwörter stimmen nicht überein." 10 30 return fi # Passwort verschlüsseln encrypted_password=$(echo "$password" | openssl enc -aes-256-cbc -salt -base64 -pass pass:my_secret_key) # Benutzer hinzufügen oder wiederherstellen add_user_to_file "$username" "$uid" "$encrypted_password" "fileserver" "aktiv" dialog --msgbox "Benutzer $username wurde erfolgreich hinzugefügt." 10 30 } add_user