Automatización de la Creación de Usuarios en Sistemas Unix con Zsh

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

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

computer codes
Photo by Pixabay 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.