Se debe crear un archivo llamado userlist con la lista de los nombres de usuario. Como resultado, genera el archivo userlist-created con la lista de los usuarios creados y sus contraseñas aleatorias.

Dispone de la opción "-p" para cambiar la contraseña a los usuarios que ya estuvieran creados previamente.

#!/bin/bash
 
if [ -f ./userlist ]
then
   for i in $(cat ./userlist)
   do
      PASSWORD=$(cat /dev/urandom | tr -dc "a-hjkmnp-zA-HJKMNP-Z!@#$%2-9" | fold -w 8 | head -1)
      if id -u $i >/dev/null 2>&1; then
         if [ "$1" == "-p" ]; then
             echo $i:$PASSWORD | chpasswd
             echo "Cambiada la contraseña de <$i>"
             echo "$i --------- $PASSWORD" >>./userlist-created
         else
             echo "usuario <$i> ya existe"
         fi
      else
         useradd -m $i
         echo $i:$PASSWORD | chpasswd
         echo "Creado el usuario <$i>"
         echo "$i --------- $PASSWORD" >>./userlist-created
      fi
   done
   chmod 0600 ./userlist-created
else
   echo "Archivo userlist no encontrado"
fi