Automatización en Linux: Recorrer un CSV y Añadir Usuarios con Bash

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

  1. Guardar el Script: Copia el código proporcionado en un archivo llamado agregar_usuarios.sh.
  2. Hacerlo Ejecutable: Otorga permisos de ejecución al script con el comando:
   chmod +x agregar_usuarios.sh
  1. 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
Photo by RealToughCandy.com on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.