Linux Users · 11 min read · Dec 15, 2025

Cómo agregar usuarios al sistema operativo Linux desde un archivo de texto

Cómo agregar usuarios al sistema operativo Linux desde un archivo de texto

Este tutorial trata sobre un script de bash para agregar, eliminar y verificar los usuarios ya sea desde un archivo de texto; también puede agregar, eliminar y modificar los usuarios manualmente. Este script se puede utilizar para agregar, eliminar y verificar los usuarios en el sistema operativo Linux al obtener la información del usuario de cualquier archivo de texto y este script también puede agregar, eliminar o verificar los usuarios manualmente, he puesto ambas funciones en un solo archivo de script. El archivo de texto puede ser especificado por el administrador.

:-) !!!El script es totalmente amigable para el usuario!!! :-)

Puedes encontrar el script al final de este tutorial.

Iniciando el Script

Cuando inicias el script, aparecerá un menú como este:

MENÚ

  1. AGREGAR USUARIOS

  2. Verificar Usuarios

  3. Eliminar Usuarios

4. SALIR

1. Agregar Usuarios

Ahora selecciona la opción

1. AGREGAR USUARIOS

del menú presionando

“1”

desde el teclado.

Ahora el script confirma que el usuario debe ser root, y sabemos que el UID de root es cero (0). Así que primero comparo el UID del usuario actual con el cero (0), si el UID no coincide con el UID de root, entonces mostrará el siguiente mensaje:

**¡Debes ser el usuario root para ejecutar este script!

y si el

UID

coincide con el UID de root, entonces muestra el siguiente mensaje y ejecuta el script:

*Identidad Verificada_ Eres el Root*

Podemos verificar el UID del usuario actual escribiendo el siguiente comando en la terminal:

echo $UID

Si el usuario es root, entonces se realizará la función 1.AGREGAR USUARIOS.

Ahora el script preguntará al usuario si desea agregar los usuarios manualmente o dejar que el script obtenga la información del usuario del archivo de texto. Para eso, mostrará el siguiente menú:

#########################################

“¡Por favor selecciona el modo!!!

  1. Agregar los Usuarios Manualmente
2.Leer los Usuarios Automáticamente desde el Archivo de Texto

###########################################

Ahora, si el usuario selecciona 1. Agregar los Usuarios Manualmente, entonces el script pedirá al usuario el nombre de usuario, grupo y contraseña; utilizará los siguientes comandos para el nombre de usuario y grupo:

read usr_nameread usr_group

Ahora, utilizando la información anterior, agregará el usuario utilizando el siguiente comando:

useradd -g $usr_group -m $usr_name

Para la contraseña, utilizará el siguiente comando:

passwd $usr_name

Ahora, si el usuario selecciona la opción 2.Leer los Usuarios Automáticamente desde el Archivo de Texto, entonces el script localizará el archivo de texto y verificará que exista, luego leerá la información como nombre de usuario, grupo, contraseña del archivo de texto.

Ahora el script mostrará el directorio de trabajo actual donde debe estar ubicado el archivo de texto al usuario, utilizando el siguiente comando:

echo $(pwd)/users.txt

Ahora el script pregunta si la ruta anterior del archivo de texto es correcta o si deseas ingresar la ruta del archivo manualmente, mostrará el siguiente mensaje al usuario:

¿Quieres usar la RUTA POR DEFECTO anterior? Sí=1 & No=2

Si el usuario presiona 1 para Sí, entonces el script cargará el archivo de texto desde la ruta mostrada, utilizando el siguiente comando:

Path=$($pwd)users.txt

Si el usuario presiona 2 para No, entonces el script pedirá al usuario que ingrese la ruta correcta para el archivo de texto y leerá la ruta del archivo utilizando el siguiente comando:

read Path

La ruta del archivo de texto se almacena en la variable “Path”. El siguiente comando se utilizará para verificar la existencia del archivo:

if [ -e $Path ];

Extraerá el nombre de usuario del archivo de texto utilizando el siguiente comando:

Username=`grep "Username00$num" $Path | cut -f2 -d:`

Extraerá el grupo del archivo de texto utilizando el siguiente comando:

Group=`grep "Group" $Path |cut -f2 -d:`

Extraerá la contraseña del archivo de texto utilizando el siguiente comando:

Password=`grep "Password" $Path | cut -f2 -d:`

Ahora el script utiliza las variables que contienen la información sobre los usuarios y los agrega al sistema operativo Linux, utilizando los siguientes comandos:

Para agregar un grupo, utilizará el siguiente comando:

groupadd $Group

Para agregar los usuarios al grupo, utilizará el siguiente comando:

useradd -g $Group -m $Username

Para establecer la contraseña para todos los usuarios, utiliza el siguiente comando:

echo $Password | /usr/bin/passwd --stdin $Username

Contraseña es la variable que contiene la misma contraseña para todos los usuarios, se extrae del archivo de texto.

2. Verificar Usuarios

Desde el menú:

    ### MENÚ ###
  1. AGREGAR USUARIOS
  2. Verificar Usuarios
  3. Eliminar Usuarios
  4. SALIR

Si el usuario selecciona la opción 2. Verificar Usuarios, aparecerá otro menú como:

#################################

¡Por favor selecciona el modo!!!

1.Verificar Todos los Usuarios del Sistema

2.Verificar Todos los Usuarios del ARCHIVO de texto

#################################

Desde el menú anterior, si el usuario selecciona la opción 1.Verificar Todos los Usuarios del Sistema, entonces todos los usuarios del sistema se mostrarán al usuario, he utilizado el siguiente comando para este propósito:

cat /etc/passwd |grep bash

El resultado del comando en mi caso devolverá los siguientes usuarios bash:

root:x:0:0:root:/root:/bin/bash
lucky:x:501:501:Lucky:/home/lucky:/bin/bash

Ahora, si el usuario selecciona la opción 2.Verificar Todos los Usuarios del ARCHIVO de texto, entonces se verificarán todos los usuarios que se mencionan en el archivo de texto. En mi caso, he utilizado el siguiente comando para verificar los usuarios del archivo de texto, ya sea que se hayan agregado al sistema operativo Linux o no, y cuántos usuarios tengo.

Para verificar los usuarios, he utilizado el siguiente comando en mi script:

Path=$($pwd)users.txt
varify=grep "varify" $Path |cut -f2 -d:
cat /etc/passwd | grep $varify

Verificar es la variable que contiene el valor único de los nombres de usuario.

Para mostrar el número total de usuarios, he utilizado el siguiente comando:

echo -e “\nActualmente tienes”
cat /etc/passwd | grep $varify |wc -l;
echo “usuarios agregados desde tu archivo de texto”

El resultado del comando anterior en mi caso es:

fa05btn001:x:502:502::/home/fa05btn001:/bin/bash
fa05btn002:x:503:502::/home/fa05btn002:/bin/bash
fa05btn003:x:504:502::/home/fa05btn003:/bin/bash
fa05btn004:x:505:502::/home/fa05btn004:/bin/bash
fa05btn005:x:506:502::/home/fa05btn005:/bin/bash
fa05btn006:x:507:502::/home/fa05btn006:/bin/bash
fa05btn007:x:508:502::/home/fa05btn007:/bin/bash
fa05btn008:x:509:502::/home/fa05btn008:/bin/bash

Actualmente tienes 8 usuarios agregados desde tu archivo de texto

3. Eliminar Usuarios

Desde el menú:

MENÚ

  1. AGREGAR USUARIOS

  2. Verificar Usuarios

  3. Eliminar Usuarios

4. SALIR

Si el usuario selecciona la opción 3. Eliminar Usuarios, entonces se verificará que el usuario sea root antes de continuar. Si el usuario se verifica como root con éxito, entonces aparecerá otro menú como:

##############################################

¡Por favor selecciona el modo!!!

1.Eliminar Usuario Específico

2.Eliminar todos los Usuarios Especificados en el ARCHIVO DE TEXTO
##############################################

Ahora, desde el menú anterior, si el usuario selecciona la opción 1.Eliminar Usuario Específico, entonces el script mostrará los usuarios actuales del sistema y pedirá al usuario que ingrese el nombre del usuario a eliminar.

Para mostrar todos los usuarios del sistema, he utilizado el siguiente comando:

cat  /etc/passwd |grep bash 

El comando anterior mostrará el siguiente resultado:

Actualmente tienes los siguientes USUARIOS Agregados a tu Sistema
root:x:0:0:root:/root:/bin/bash
lucky:x:501:501:Lucky:/home/lucky:/bin/bash
fa05btn001:x:502:502::/home/fa05btn001:/bin/bash
fa05btn002:x:503:502::/home/fa05btn002:/bin/bash
fa05btn003:x:504:502::/home/fa05btn003:/bin/bash
fa05btn004:x:505:502::/home/fa05btn004:/bin/bash
fa05btn005:x:506:502::/home/fa05btn005:/bin/bash
fa05btn006:x:507:502::/home/fa05btn006:/bin/bash
fa05btn007:x:508:502::/home/fa05btn007:/bin/bash
fa05btn008:x:509:502::/home/fa05btn008:/bin/bash

Escribe el Nombre del Usuario que deseas Eliminar:

Ahora se le pedirá al usuario que ingrese el nombre del usuario a eliminar, y cuando el usuario ingrese el nombre del usuario que desea eliminar, el sistema operativo Linux buscará al usuario en el archivo anterior y eliminará al usuario utilizando el siguiente comando:

read user_name
userdel -r $user_name

Ahora, si el usuario selecciona la opción

2.Eliminar todos los Usuarios Especificados en el ARCHIVO DE TEXTO

entonces el script eliminará todos los usuarios listados en ese archivo de texto.

El siguiente comando extraerá los nombres de usuario del archivo de texto:

Username=`grep "Username00$num" $Path | cut -f2 -d:`

El siguiente segmento de script irá al final del archivo y terminará el bucle:

if [ $Username == “EOF” ]; then
clear
main
fi

El siguiente comando eliminará los usuarios listados en el archivo de texto:

userdel -r $Username

Nota: He probado mi script ADDUSER.sh en PCLinuxOS, y espero que también funcione bien en otras distribuciones de Linux. Cualquiera puede modificar el código también, y por favor compártelo con otros.

Que tengas un buen tiempo. :-)

EL SIGUIENTE ES EL SCRIPT COMPLETO PARA AGREGAR, ELIMINAR y VERIFICAR LOS USUARIOS EN EL SISTEMA OPERATIVO LINUX.

Creado por USMAN AKRAM (ajaonchat)

#!/bin/bash
###############################################################
#Este Script fue creado por                                    #
#                USMAN AKRAM  (ajaonchat)                     #
#                                       FA05-BTN-005          #
#                            BTN-6                            #
###############################################################
add_users()
{
    ROOT_UID=0      #El usuario root tiene un UID de 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "¡Debes ser el usuario root para ejecutar este script!**"
            exit
    fi
    echo
    echo Identidad Verificada_ Eres el Root
    echo 

echo -e "\n#########################################\n"

echo -e "Por favor selecciona el modo!!!\n"

echo -e "1. Agregar los Usuarios Manualmente\n
2.Leer los Usuarios Automáticamente desde el Archivo de Texto\n"

echo -e "###########################################"
    read add_opt
    case $add_opt in
        1)
    echo -e "Por favor ingresa el nombre de usuario:"
    read usr_name
    echo -e "Por favor ingresa el grupo de usuario"
    read usr_group
    groupadd $usr_group
    useradd -g $usr_group -m $usr_name
        echo -e "Por favor ingresa la contraseña para el usuario $usr_name"
    passwd $usr_name ;; 
    2)
       echo
       echo "El directorio de trabajo actual es: `pwd`/users.txt"
       echo
       echo -e "¿Quieres usar la RUTA POR DEFECTO anterior? Sí=1 & No=2"
       read yn
if [ $yn == 1 ]; then
                      Path=$($pwd)users.txt
else
       echo -n "Por favor ingresa la ruta correcta al archivo (por ejemplo, /root/folder/filename.txt): "
       read Path
fi
if [ -e $Path ]; then           #Si el archivo especificado por el usuario existe
Username=lucky
num=1
    while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Extraer Nombre de Usuario del archivo de texto
num=$(($num+1))
        Password=`grep "Password" $Path | cut -f2 -d:`       #Extraer Contraseña del archivo de texto
        Group=`grep "Group" $Path |cut -f2 -d:`              #Extraer Grupo del archivo de texto 
        
        groupadd $Group     
                    #Agrega usuario al sistema y le asigna una contraseña
           if [ $Username == "EOF" ]; then
                   clear
                   main
           fi
                #Agrega usuario al sistema
                useradd -g $Group -m $Username 
                #Agregar contraseña de usuarios
                echo $Password | /usr/bin/passwd --stdin $Username #la contraseña del usuario será asignada
    done
else  #Si el archivo especificado por el usuario no existe
    echo -e "\n#############################################"
    echo -e "\n######¡NO SE PUEDE ENCONTRAR O LOCALIZAR EL ARCHIVO!!!!#####"
    echo -e "\n#############################################"
fi;;
*) echo -e "¡Has seleccionado la opción incorrecta!!!"
esac
        
}
varify()
{
    echo -e "#################################"
    echo -e "¡Por favor selecciona el modo!!!\n"
    echo -e "1.Verificar Todos los Usuarios del Sistema\n
2.Verificar Todos los Usuarios del ARCHIVO de texto\n"
    echo -e "#################################"
    read varify_user
case $varify_user in
        1) cat /etc/passwd |grep bash;;
        2)
    echo
        echo "El directorio de trabajo actual es: `pwd`/users.txt"
        echo
        echo -e "¿Quieres usar la RUTA POR DEFECTO anterior? Sí=1 & No=2"
        read yn
if [ $yn == 1 ]; then
                     Path=$($pwd)users.txt
else
        echo -n "Por favor ingresa la ruta correcta al archivo (por ejemplo, /root/folder/filename.txt): "
        read Path
fi
if [ -e $Path ]; then
    Path=$($pwd)users.txt
    varify=`grep "varify" $Path |cut -f2 -d:`
      cat  /etc/passwd | grep $varify
  echo -e "\nActualmente tienes "
          cat /etc/passwd | grep $varify |wc -l
      echo  "usuarios agregados desde tu archivo de texto" 
else  #Si el archivo especificado por el usuario no existe
      echo -e "\n#############################################"
      echo -e "\n######¡NO SE PUEDE ENCONTRAR O LOCALIZAR EL ARCHIVO!!!!#####"
      echo -e "\n#############################################"
fi ;;
*) echo -e "Opción incorrecta"
esac
         
}

del_users()
{
#¡Este Script eliminará los Usuarios del DIRECTORIO PERSONAL!!!!!
ROOT_UID=0      #El usuario root tiene un UID de 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "**¡Debes ser el usuario root para ejecutar este script!**"
            exit
    fi
    echo
    echo Identidad Verificada_ Eres el Root
    echo
    
echo
    echo "El directorio de trabajo actual es: `pwd`/students.txt"
    echo

#Este es el Menú para seleccionar el modo de eliminación de los usuarios, ya sea eliminar el usuario seleccionado o eliminar todos los usuarios que tienes en el ARCHIVO DE TEXTO...???
echo -e "####################################"
echo -e "\n¡Por favor selecciona el modo!!!\n
1.Eliminar Usuario Específico\n
2.Eliminar todos los Usuarios Especificados en el ARCHIVO DE TEXTO\n"
echo -e "####################################"
read del_opt
case $del_opt in
    1)
        echo -e "\n\nActualmente tienes los siguientes USUARIOS Agregados a tu Sistema\n"
         cat  /etc/passwd |grep bash
        echo -e "\n\n Escribe el Nombre del Usuario que deseas Eliminar:"
        read user_name
        userdel -r $user_name ;; 
    2) 
       echo
       echo "El directorio de trabajo actual es: `pwd`/users.txt"
       echo
       echo -e "¿Quieres usar la RUTA POR DEFECTO anterior? Sí=1 & No=2"
       read yn
if [ $yn == 1 ]; then
       Path=$($pwd)users.txt
else
       echo -n "Por favor ingresa la ruta correcta al archivo (por ejemplo, /root/folder/filename.txt): "
       read Path
fi
if [ -e $Path ]; then       #Si el archivo especificado por el usuario existe
        num=1
Username=lucky      
        while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Extraer Nombre de Usuario del archivo de texto
        
        if [ $Username == "EOF" ]; then
            clear
            main
        fi
                                   
                userdel -r $Username
num=$(($num+1))
    done
else  #Si el archivo especificado por el usuario no existe
    echo -e "\n#############################################"
    echo -e "\n######¡NO SE PUEDE ENCONTRAR O LOCALIZAR EL ARCHIVO!!!!#####"
    echo -e "\n#############################################"
fi ;; 
*) echo -e "Opción incorrecta" 
esac
}

main()
{
    opt=1
while [ $opt -le 4 ]
do
    clear
echo -e "           ### MENÚ ###\n 
                1. AGREGAR USUARIOS\n
                2. Verificar Usuarios\n
                3. Eliminar Usuarios\n
                4. SALIR\n"
read opt
case $opt in
    1) add_users ;; 
    2) varify ;; 
    3) del_users ;; 
    4) exit 0 ;; 
    *) echo -e "¡Has ingresado la opción incorrecta!!!"
esac
    echo -e "\n¿Quieres ejecutar el script nuevamente? Sí=1 & No=4."
read opt
done
}
main
exit 0

Este es el archivo de texto que utilicé con mi script

#######################################################
CREADO POR
                     USMAN AKRAM (LUCKY)
            FA05-BTN-005
                [email protected]
#######################################################
Cuenta de Estudiante de COMSATS Abbottabad
    ==============================
Nombre del archivo:users.txt
Año:2008
Campus:CIIT-ABTD
Grupo:btn
##¡Los siguientes son los usuarios que se agregarán al DIRECTORIO PERSONAL!!!
Username001:fa05btn001
Username002:fa05btn002
Username003:fa05btn003
Username004:fa05btn004
Username005:fa05btn005
Username006:fa05btn006
Username007:fa05btn007
Username008:fa05btn008
Username009:EOF
#será el usuario final
verificar:fa05btn
Contraseña:123456
Fin del Archivo de Texto!!!!

Creado por USMAN AKRAM(Lucky), Estudiante de la Universidad COMSATS Abbottabad [BS(TN)-6] Dirección de correo electrónico: [email protected]

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.