HDD und User Verbessert
This commit is contained in:
51
useradd_neu.sh
Normal file
51
useradd_neu.sh
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user