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: