Dateien nach "benutzer_anlegen" hochladen
This commit is contained in:
parent
f45429147e
commit
93e8d2cc76
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue