scripte/benutzer_anlegen/add_group.sh

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