Quando è necessario creare uno o più account su uno o più server Linux, mi piace raggrupparli per UID (userID) e/o GID (groupID), metodo che trovo utile anche nella successiva gestione dei server stessi; che si tratti di account applicativi o di account interattivi non è importante, per metodo, li divido in valori di UID e/o GID, ad esempio, si potrebbe essegnare agli account applicativi l’intervallo UID/GID da 5000 a 5500 e agli account utente l’intervallo da 6000 a 6500 e così via.
Il codice indicato è minimale, serve giusto a titolo di esempio sull’uso delle due funzioni, getmaxgid e getmaxuid, essenziali.
#!/bin/bash getmaxgid() { MINGID=$1 gid=$(cat /etc/group | cut -f3 -d: | sort -un | awk -v extGID=$MINGID 'BEGIN { gid=extGID } $GID == gid { gid++ } $GID > gid { print gid; exit }') echo $gid } getmaxuid() { MINUID=$1 uid=$(cat /etc/passwd | cut -f3 -d: | sort -un | awk -v extUID=$MINUID 'BEGIN { uid=extUID } $UID == uid { uid++ } $UID > uid { print uid; exit }') echo $uid } GROUPID=$(getmaxgid 6000) USERID=$(getmaxuid 6000) echo $GROUPID $USERID