En el ámbito de la administración de sistemas y la automatización de tareas, los scripts de Bash ofrecen una herramienta poderosa para realizar operaciones repetitivas de forma eficiente. Una tarea común en este contexto es la gestión de usuarios en un sistema Linux, donde se puede necesitar crear múltiples usuarios automáticamente a partir de una lista proporcionada en un archivo CSV (Valores Separados por Comas). En este artículo, exploraremos cómo crear un script de Bash para recorrer un archivo CSV y añadir usuarios al sistema, utilizando como contraseña su DNI, proporcionando así una solución práctica y automatizada para la administración de usuarios.
Estructura del Archivo CSV
Consideremos un archivo CSV usuarios.csv
con la siguiente estructura:
usuario;contraseña;nombre;dni
user1;pass1;Juan Perez;12345678
user2;pass2;Laura Gomez;87654321
user3;pass3;Carlos Ruiz;12348765
Cada línea del archivo representa un usuario, con los campos separados por punto y coma (;
), incluyendo el nombre de usuario, contraseña (no se usará en este ejemplo, ya que la contraseña será el DNI), nombre completo, y DNI.
Script de Bash para Añadir Usuarios
El siguiente script de Bash agregar_usuarios.sh
lee el archivo CSV línea por línea, omitiendo la primera línea (cabecera), y utiliza el comando useradd
para añadir cada usuario al sistema con su DNI como contraseña.
#!/bin/bash
# Ruta al archivo CSV
archivo_csv="usuarios.csv"
# Comprobar si el archivo CSV existe
if [[ ! -f "$archivo_csv" ]]; then
echo "El archivo $archivo_csv no existe."
exit 1
fi
# Leer el archivo CSV línea por línea, omitiendo la primera línea (cabecera)
tail -n +2 "$archivo_csv" | while IFS=';' read -r usuario contrasena nombre dni; do
# Comprobar si el usuario ya existe en el sistema
if id "$usuario" &>/dev/null; then
echo "El usuario $usuario ya existe. Omitiendo..."
else
# Añadir el usuario al sistema con adduser o useradd
useradd -m -c "$nombre" -s /bin/bash "$usuario"
# Establecer el DNI como contraseña
echo "$usuario:$dni" | chpasswd
echo "Usuario $usuario añadido exitosamente."
fi
done
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.sh
. - Hacerlo Ejecutable: Otorga permisos de ejecución al script con el comando:
chmod +x agregar_usuarios.sh
- Ejecutar el Script: Ejecuta el script desde la terminal con el comando:
./agregar_usuarios.sh
Notas Importantes
- Este script asume que tienes permisos de superusuario (root) para añadir usuarios al sistema.
- La seguridad de utilizar el DNI como contraseña es limitada. Considera implementar políticas de contraseñas más robustas para entornos de producción.
- Asegúrate de ajustar el script según sea necesario para cumplir con las políticas de usuario y seguridad de tu sistema.
Conclusión
Automatizar la gestión de usuarios mediante scripts de Bash y archivos CSV puede ahorrar tiempo y reducir errores humanos en entornos de administración de sistemas Linux. Este enfoque no solo es eficiente sino también flexible, permitiendo modificaciones para adaptarse a diferentes requisitos y estructuras de datos. Con prácticas adecuadas de seguridad y gestión, este método se convierte en una herramienta valiosa para administradores de sistemas y desarrolladores por igual.
![linux tux penguin mascot cutout lying on a tray with ice cubes](https://infogonzalez.com/wp-content/uploads/2024/02/pexels-photo-11034131-1.jpeg)
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.