23 lines
991 B
Bash
23 lines
991 B
Bash
#!/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
|