scripte/add_user.sh

52 lines
1.7 KiB
Bash

#!/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