Dateien nach "benutzer_anlegen" hochladen

This commit is contained in:
sebastian.zell 2024-12-30 01:48:39 +00:00
parent f45429147e
commit 93e8d2cc76
3 changed files with 129 additions and 0 deletions

View File

@ -0,0 +1,22 @@
#!/bin/bash
source ./data_utils.sh
group_name=$(dialog --inputbox "Geben Sie den Namen der neuen Gruppe ein:" 10 40 3>&1 1>&2 2>&3)
[[ -z "$group_name" ]] && exit 1
# Prüfen, ob die Gruppe bereits existiert
if grep -q "^$group_name:" <(awk '/^\[groups\]/ {flag=1; next} /^\[users\]/ {flag=0} flag' encrypted_users.list); then
# Wenn die Gruppe gelöscht ist, reaktivieren
sed -i "/^\[groups\]/,/^\[users\]/s/^$group_name:.*:geloescht$/$group_name:$gid:aktiv/" encrypted_users.list
dialog --msgbox "Die Gruppe '$group_name' wurde reaktiviert." 10 40
exit 0
fi
# Berechnung der nächsten GID (beginnend ab 501)
max_gid=$(awk '/^\[groups\]/ {flag=1; next} /^\[users\]/ {flag=0} flag' encrypted_users.list | awk -F: '{print $2}' | sort -n | tail -n1)
next_gid=$((max_gid > 500 ? max_gid + 1 : 501))
# Gruppe in der Datendatei speichern
echo "$group_name:$next_gid:aktiv" >>encrypted_users.list
dialog --msgbox "Gruppe '$group_name' mit GID '$next_gid' hinzugefügt." 10 40

View File

@ -0,0 +1,51 @@
#!/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

View File

@ -0,0 +1,56 @@
#!/bin/bash
source ./data_utils.sh
add_user_to_group() {
initialize_user_list
# Benutzerliste abrufen (nur aktive Benutzer)
users=$(read_users | grep ":aktiv$" | awk -F':' '{print $1 " " $1}')
if [[ -z "$users" ]]; then
dialog --msgbox "Keine aktiven Benutzer verfügbar." 10 30
return
fi
# Benutzer grafisch auswählen
username=$(dialog --menu "Benutzer auswählen:" 20 50 10 $users 3>&1 1>&2 2>&3)
if [[ -z "$username" ]]; then
dialog --msgbox "Kein Benutzer ausgewählt." 10 30
return
fi
# Gruppenliste abrufen (nur aktive Gruppen)
groups=$(read_groups | grep ":aktiv$" | awk -F':' '{print $1 " " $1}')
if [[ -z "$groups" ]]; then
dialog --msgbox "Keine aktiven Gruppen verfügbar." 10 30
return
fi
# Gruppe grafisch auswählen
groupname=$(dialog --menu "Gruppe auswählen, zu der $username hinzugefügt werden soll:" 20 50 10 $groups 3>&1 1>&2 2>&3)
if [[ -z "$groupname" ]]; then
dialog --msgbox "Keine Gruppe ausgewählt." 10 30
return
fi
# Benutzer zur Gruppe hinzufügen
existing_user=$(grep "^$username:" <(read_users))
current_groups=$(echo "$existing_user" | cut -d':' -f4)
# Überprüfen, ob Benutzer bereits in der Gruppe ist
if [[ "$current_groups" == *"$groupname"* ]]; then
dialog --msgbox "Benutzer $username ist bereits in der Gruppe $groupname." 10 30
return
fi
# GID der Gruppe abrufen
group_entry=$(grep "^$groupname:" <(read_groups))
group_gid=$(echo "$group_entry" | cut -d':' -f2)
# Aktualisieren der Gruppenzugehörigkeit
updated_groups="${current_groups},${groupname}"
sed -i "s|^$username:.*|$username:$(echo "$existing_user" | cut -d':' -f2-3):$updated_groups:aktiv|" "$USER_LIST"
dialog --msgbox "Benutzer $username wurde erfolgreich zur Gruppe $groupname hinzugefügt." 10 30
}
add_user_to_group