Eu não sei o que você quer dizer com "next available" com relação às variáveis $ HOME e $ SHELL. Aqueles que você acabou de definir para seus padrões: /home/USERNAME
e /bin/bash
ou qualquer outra coisa. Para o $HOME
, apenas certifique-se de que o diretório não exista ( [ -e "/home/$username" ] && echo "Directory exists"
).
Quanto aos grupos, apenas liste os grupos disponíveis e escolha o próximo. A política Debian em grupos (e eu acredito que isto não está restrito a Debian) afirma que os usuários normais devem ter GIDs entre 1000 e 5999. Portanto, tudo que você precisa fazer é analisar /etc/passwd
, imprimir os grupos existentes nesse intervalo e, em seguida, adicionar um:
grp=$(awk -F: '$4>=1000 && $4<6000{print $4+1}' /etc/passwd | sort -n | tail -n1)
O comando awk
imprimirá o valor do 4º campo separado :
mais 1 se o seu valor estiver entre 1000 e 6000. Isso é então classificado e a linha lat é mantida. O resultado é um GID que é um maior que o atual maior.