Bash Script para agregar nuevos usuarios en Linux

Naila Saad Siddiqui 15 febrero 2024
Bash Script para agregar nuevos usuarios en Linux

Este breve artículo trata sobre la creación de un script Bash que puede agregar usuarios y asignar contraseñas automáticamente al sistema operativo Linux. En el sistema operativo Linux, el comando useradd se usa para agregar nuevos usuarios y darles contraseñas.

Comando Bash Script useradd

Una sencilla utilidad para añadir usuarios es useradd. Los administradores de Debian normalmente deberían usar adduser en su lugar.

La invocación del comando useradd sin la opción -D crea una nueva cuenta de usuario por los valores ingresados en la línea de comando y los valores predeterminados del sistema. El comando useradd actualiza los archivos del sistema y puede realizar otras tareas según las opciones de la línea de comandos.

Además, cree el directorio de inicio para el nuevo usuario y copie los archivos iniciales.

Bash Script para agregar usuario

En el sistema operativo Linux, necesitamos ser usuarios root para agregar nuevos usuarios al sistema. Por lo tanto, en el script, primero debemos validar si el usuario que ejecuta el script es un usuario root o no.

Después de eso, podemos tomar el nombre de usuario y la contraseña de entrada del usuario y luego ejecutar el comando useradd. Veamos el guión a continuación.

Guión de bash:

#!/bin/bash

if [ $(id -u) -eq 0 ]; then
    read -p "Enter your  username : " user_name
    read -s -p "Enter your password : " pass
    egrep "^$user_name" /etc/passwd >/dev/null
    if [ $? -eq 0 ]; then
        echo "$user_name exists!"
        exit 1
    else
        epass=$(perl -e 'print crypt($ARGV[0], "pass")' $pass)
        useradd -m -p "$epass" "$user_name"
        [ $? -eq 0 ] && echo "Successfully added User!" || echo "Sorry! User not added"
    fi
else
    echo "Sorry! You are not authorized to add users."
    exit 2
fi

Después de leer el nombre de usuario y la contraseña del usuario, primero buscamos si el usuario con el nombre de usuario dado ya existe o no usando el comando egrep. Si la entrada del usuario se encuentra en el archivo /etc/passwd, significa que el usuario ya existe.

En caso contrario no, encriptaremos la contraseña mediante el comando perl. El comando perl mostrará la pantalla con la contraseña cifrada.

La función crypt() de Perl emplea un algoritmo de cifrado unidireccional, lo que hace imposible descifrar una contraseña una vez cifrada. La cadena de contraseña del usuario se obtiene, se cifra con sal y luego se muestra en la pantalla de la computadora.

Después de ejecutar el comando useradd, comprobaremos el resultado usando $? valor y mostrar el mensaje apropiado al usuario.

Producción:

salida del script bash del comando useradd

Artículo relacionado - Bash Command