#!/bin/bash # Funktion zur Ermittlung der nächsten verfügbaren UID oder GID oberhalb von 8000 get_next_id() { local id_type="$1" local current_max_id="$2" local min_id=8001 if [ -z "$current_max_id" ]; then echo "$min_id" else local next_id=$((current_max_id + 1)) if [ "$next_id" -lt "$min_id" ]; then next_id="$min_id" fi echo "$next_id" fi } # Nach dem Präfix für Benutzer und Gruppen fragen read -p "Geben Sie das Präfix für Benutzer und Gruppen ein: " prefix # Nach der Anzahl der zu erstellenden Benutzer fragen read -p "Geben Sie die Anzahl der zu erstellenden Benutzer ein: " num_users # Die aktuell größte vorhandene UID und GID ermitteln current_max_uid=$(getent passwd | awk -F':' '$3 >= 8000 {print $3}' | sort -n | tail -1) current_max_gid=$(getent group | awk -F':' '$3 >= 8000 {print $3}' | sort -n | tail -1) echo "Aktuell größte vorhandene UID: $current_max_uid" echo "Aktuell größte vorhandene GID: $current_max_gid" # Benutzer und Gruppen erstellen for ((i=1; i<=num_users; i++)) do # Benutzername mit zweistelliger Nummer erstellen username="${prefix}$(printf "%02d" $i)" groupname="${prefix}$(printf "%02d" $i)" # Nächste verfügbare UID und GID ermitteln next_uid=$(get_next_id "UID" "$current_max_uid") next_gid=$(get_next_id "GID" "$current_max_gid") # Benutzer und Gruppe erstellen sudo groupadd -g "$next_gid" "$groupname" sudo useradd -m -u "$next_uid" -g "$groupname" "$username" echo "Benutzer '$username' mit UID $next_uid und Gruppe '$groupname' mit GID $next_gid wurde erstellt." done echo "Die Benutzer und Gruppen wurden erstellt."