En entornos Unix y Linux, la shell Zsh (Z Shell) es conocida por su facilidad de uso y potentes características, lo que la hace ideal para la automatización de tareas administrativas, incluyendo la gestión de usuarios. Al igual que en otros shells, Zsh puede ejecutar scripts que automatizan procesos complejos o tediosos. En este artículo, vamos a crear un script de Zsh que procesa un archivo CSV para crear usuarios en el sistema, utilizando su DNI como contraseña.
Estructura del Archivo CSV
Para este ejemplo, trabajaremos con un archivo CSV llamado usuarios.csv
que sigue la estructura:
usuario;contraseña;nombre;dni
user1;pass1;Juan Perez;12345678
user2;pass2;Laura Gomez;87654321
user3;pass3;Carlos Ruiz;12348765
Este archivo incluye información clave para la creación de usuarios: nombre de usuario, contraseña (que se sustituirá por el DNI en nuestro caso), nombre completo y DNI.
Script de Zsh para Añadir Usuarios
El siguiente script agregar_usuarios.zsh
lee el archivo CSV, omite la primera línea y utiliza comandos Unix/Linux estándar para añadir usuarios al sistema, asignando el DNI como contraseña.
#!/bin/zsh
# Ruta al archivo CSV
archivoCSV="usuarios.csv"
# Comprobar si el archivo CSV existe
if [[ ! -f $archivoCSV ]]; then
echo "El archivo $archivoCSV no existe."
exit 1
fi
# Leer el archivo CSV línea por línea, omitiendo la primera línea
{
read # Omitir la cabecera
while IFS=';' read -r usuario contraseña nombre dni; do
# Comprobar si el usuario ya existe
if id "$usuario" &>/dev/null; then
echo "El usuario $usuario ya existe. Omitiendo..."
else
# Añadir el usuario al sistema
sudo useradd -m -c "$nombre" -s /bin/zsh "$usuario"
# Establecer el DNI como contraseña
echo "$usuario:$dni" | sudo chpasswd
echo "Usuario $usuario añadido exitosamente."
fi
done
} < $archivoCSV
echo "Proceso de añadir usuarios completado."
Instrucciones para Ejecutar el Script
- Guardar el Script: Copia el código proporcionado en un archivo llamado
agregar_usuarios.zsh
. - Hacerlo Ejecutable: Otorga permisos de ejecución al script con el comando:
chmod +x agregar_usuarios.zsh
- Ejecutar el Script: Ejecuta el script desde la terminal con el comando:
./agregar_usuarios.zsh
Consideraciones Importantes
- Este script utiliza
sudo
para ejecutar comandos que requieren permisos de administrador. Asegúrate de tener los permisos necesarios o ejecutar el script como un usuario que pueda elevar privilegios. - Utilizar el DNI como contraseña puede no ser seguro. Evalúa las políticas de seguridad de tu organización y considera implementar una estrategia de contraseñas más robusta.
- Asegúrate de tener instalado Zsh y de que tu sistema permite la creación de usuarios con los comandos utilizados.
Conclusión
La automatización con Zsh en sistemas Unix y Linux ofrece una manera eficiente de gestionar la creación de usuarios, permitiendo a los administradores de sistemas ahorrar tiempo y reducir la posibilidad de errores humanos. Este script demuestra cómo se pueden combinar los comandos Unix/Linux estándar y la potencia de Zsh para realizar tareas administrativas complejas de manera sencilla y efectiva. Con prácticas adecuadas de seguridad y gestión de usuarios, este enfoque puede ser una herramienta valiosa en cualquier arsenal de administración de sistemas.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.