Vamos con un script para automatizar tareas. Tenemos un CSV, le llamaremos user.csv, con los siguientes datos: Nombre, Primer Apellido y Usuario. Algo tal que así
Manuel,Garcia,ManuG1 Pedro,Rodriguez,PredroR2 Maria,Abalo,MariaA45 Josefa,Perez,JosefP21 Marta,Rios,MartaR91
La idea del script es la siguiente: recorre el fichero csv y crea a los usuarios con ese nombre y apellido y ese código de usuario. Asigna una contraseña generada de forma aleatoria y redirige la salida a un fichero para poder notificar a los usuarios creados su usuario y contraseña.
#!/bin/bash OLDIFS=$IFS IFS="," while read firstname lastname userid do PS=$(openssl rand -base64 12) useradd -c "${firstname} ${lastname}" -p $PS -d /home/"${userid}" -s /bin/bash "${userid}" echo "Usuario: ${userid} - Contraseña: $PS ....." >> resultado.txt done < user.csv
La opción de crear los usuarios con contraseña no es recomendable en todos los ámbitos por temas de seguridad, lo he hecho en este caso porque el ejemplo real en el que lo hice lo había requerido así el cliente, pero según la política y el contexto de seguridad no es algo recomendable en todos los casos porque podrían ser vistas por algún usuario no autorizado, así que aunque la generes así es mejor obligar a los usuarios a cambiarla. Para crearlo sin contraseña en la instrucción useradd quita el parámetro -p $PS, la línea de encima que genera el password (que ya sería inútil) y el $PS en la salida.
oye una duda, y al ejecutar el script como lo hago? bash ./nombrescript.sh < archivo.csv
tienes que ponerle permisos de ejecución al archivo .sh
ejemplo:
aplicandole todos los permisos (lectura, escritura y ejecución) sería chmod 777 archivo.sh
y para ejecutar el archivo colocamos ./archivo.sh