Linux Users · 11 min read · Dec 15, 2025

Como Adicionar Usuários ao Linux OS a Partir de um Arquivo de Texto

Como Adicionar Usuários ao Linux OS a Partir de um Arquivo de Texto

Este tutorial é sobre um script bash para adicionar, excluir e verificar os usuários, seja a partir de um arquivo de texto; ele também pode adicionar, excluir e modificar os usuários manualmente. Este script pode ser usado para adicionar, excluir e verificar os usuários no Linux OS, buscando as informações do usuário de qualquer arquivo de texto e este script também pode adicionar, excluir ou verificar os usuários manualmente, eu coloquei ambas as funções em um único arquivo de script. O arquivo de texto pode ser especificado pelo administrador.

:-) !!!O script é totalmente amigável ao usuário!!! :-)

Você pode encontrar o script no final deste tutorial.

Iniciando o Script

Quando você iniciar o script, um menu aparecerá assim:

MENU

  1. ADICIONAR USUÁRIOS

  2. Verificar Usuários

  3. Excluir Usuários

4. SAIR

1. Adicionar Usuários

Agora selecione a opção

1. ADICIONAR USUÁRIOS

no menu pressionando

“1”

no teclado.

Agora o script confirma que o usuário deve ser root, e sabemos que o UID do root é zero (0). Então, primeiro eu comparo o UID do usuário atual com o zero (0), se o UID não corresponder ao UID do root, então será exibida a seguinte mensagem:

**Você deve ser o usuário root para executar este script!

e se o

UID

corresponder ao UID do root, então ele exibirá a seguinte mensagem e executará o script:

*Identidade Verificada_ Você é o Root*

Podemos verificar o UID do usuário atual digitando o seguinte comando no terminal:

echo $UID

Se o usuário for root, então a função 1.ADICIONAR USUÁRIOS será executada.

Agora o script perguntará ao usuário se ele/ela deseja adicionar os usuários manualmente ou deixar o script obter as informações do usuário do arquivo de texto. Para isso, ele exibirá o seguinte menu:

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

“Por favor, selecione o modo!!!

  1. Adicionar os Usuários Manualmente
2.Ler os Usuários Automaticamente do Arquivo de Texto

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

Agora, se o usuário selecionar 1. Adicionar os Usuários Manualmente, então o script solicitará ao usuário o nome de usuário, grupo e senha; ele usará os seguintes comandos para nome de usuário e grupo:

read usr_nameread usr_group

Agora, usando as informações acima, ele adicionará o usuário usando o seguinte comando:

useradd -g $usr_group -m $usr_name

Para a senha, ele usará o seguinte comando:

passwd $usr_name

Agora, se o usuário selecionar a opção 2.Ler os Usuários Automaticamente do Arquivo de Texto, então o script localizará o arquivo de texto e verificará se ele existe, então ele lerá as informações como nome de usuário, grupo, senha do arquivo de texto.

Agora o script exibirá o diretório de trabalho atual onde o arquivo de texto deve estar localizado para o usuário, usando o seguinte comando:

echo $(pwd)/users.txt

Agora o script pergunta se o caminho acima do arquivo de texto está correto ou se você deseja inserir o caminho do arquivo manualmente, ele exibirá a seguinte mensagem ao usuário:

Você deseja usar o CAMINHO padrão acima? Sim=1 & Não=2

Se o usuário pressionar 1 para Sim, então o script carregará o arquivo de texto do caminho mostrado, usando o seguinte comando:

Path=$($pwd)users.txt

Se o usuário pressionar 2 para Não, então o script pedirá ao usuário para inserir o caminho correto para o arquivo de texto e lerá o caminho do arquivo usando o seguinte comando:

read Path

O caminho do arquivo de texto é armazenado na variável “Path”. O seguinte comando será usado para verificar a existência do arquivo:

if [ -e $Path ];

Ele extrairá o nome de usuário do arquivo de texto usando o seguinte comando:

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

Ele extrairá o grupo do arquivo de texto usando o seguinte comando:

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

Ele extrairá a senha do arquivo de texto usando o seguinte comando:

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

Agora o script usa as variáveis que contêm as informações sobre os usuários e os adiciona ao Linux OS, usando os seguintes comandos:

Para adicionar um grupo, ele usará o seguinte comando:

groupadd $Group

Para adicionar os usuários ao grupo, ele usará o seguinte comando:

useradd -g $Group -m $Username

Para definir a senha para todos os usuários, ele usa o seguinte comando:

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

Senha é a variável que contém a mesma senha para todos os usuários, é extraída do arquivo de texto.

2. Verificar Usuários

Do menu:

    ### MENU ###
  1. ADICIONAR USUÁRIOS
  2. Verificar Usuários
  3. Excluir Usuários
  4. SAIR

Se o usuário selecionar a opção 2. Verificar Usuários, outro menu aparecerá assim:

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

Por favor, selecione o modo!!!

1.Verificar Todos os Usuários do Sistema

2.Verificar Todos os Usuários do ARQUIVO DE TEXTO

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

Do menu acima, se o usuário selecionar a opção 1.Verificar Todos os Usuários do Sistema, então todos os usuários do sistema serão exibidos ao usuário, eu usei o seguinte comando para esse propósito:

cat /etc/passwd |grep bash

O resultado do comando, no meu caso, retornará os seguintes usuários bash:

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

Agora, se o usuário selecionar a opção 2.Verificar Todos os Usuários do ARQUIVO DE TEXTO, então todos os usuários que estão mencionados no arquivo de texto serão verificados. No meu caso, eu usei o seguinte comando para verificar os usuários do arquivo de texto, se foram adicionados ao Linux OS ou não, e quantos usuários eu tenho.

Para verificar os usuários, eu usei o seguinte comando no meu script:

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

Verificar é a variável que contém o valor único dos nomes de usuário.

Para exibir o número total de usuários, eu usei o seguinte comando:

echo -e “\nVocê tem atualmente”
cat /etc/passwd | grep $varify |wc -l;
echo “usuários adicionados do seu Arquivo de Texto”

O resultado do comando acima, no meu caso, é:

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

Você tem atualmente 8 usuários adicionados do seu Arquivo de Texto

3. Excluir Usuários

Do menu:

MENU

  1. ADICIONAR USUÁRIOS

  2. Verificar Usuários

  3. Excluir Usuários

4. SAIR

Se o usuário selecionar a opção 3. Excluir Usuários, então a verificação do usuário como root será feita antes de prosseguir. Se o usuário for verificado como root com sucesso, então outro menu aparecerá assim:

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

Por favor, selecione o modo!!!

1.Excluir Usuário Específico

2.Excluir todos os Usuários Especificados no ARQUIVO DE TEXTO
##############################################

Agora, do menu acima, se o usuário selecionar a opção 1.Excluir Usuário Específico, então o script exibirá os usuários atuais do sistema e pedirá ao usuário para inserir o nome do usuário a ser excluído.

Para exibir todos os usuários do sistema, eu usei o seguinte comando:

cat  /etc/passwd |grep bash 

O comando acima exibirá o seguinte resultado:

Você tem atualmente os seguintes USUÁRIOS adicionados ao seu 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

Digite o Nome do Usuário que você deseja Excluir:

Agora o usuário será solicitado a inserir o nome do usuário a ser excluído, e quando o usuário inserir o nome do usuário que ele/ela deseja excluir, o Linux OS procurará o usuário no arquivo acima e excluirá o usuário usando o seguinte comando:

read user_name
userdel -r $user_name

Agora, se o usuário selecionar a opção

2.Excluir todos os Usuários Especificados no ARQUIVO DE TEXTO

então o script excluirá todos os usuários listados naquele arquivo de texto.

O seguinte comando extrairá os nomes de usuário do arquivo de texto:

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

O seguinte segmento de script irá para o final do arquivo e termina o loop:

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

O seguinte comando excluirá os usuários listados no arquivo de texto:

userdel -r $Username

Nota: Eu testei meu script ADDUSER.sh no PCLinuxOS, e espero que ele também funcione bem em outras distribuições Linux. Qualquer um pode modificar o código também, e por favor, compartilhe com os outros.

Tenha um bom tempo. :-)

O SEGUINTE É O SCRIPT COMPLETO PARA ADICIONAR, EXCLUIR e VERIFICAR OS USUÁRIOS NO LINUX OS.

Criado por USMAN AKRAM (ajaonchat)

#!/bin/bash
###############################################################
#Este Script foi Criado por                                    #
#                USMAN AKRAM  (ajaonchat)                     #
#                                       FA05-BTN-005          #
#                            BTN-6                            #
###############################################################
add_users()
{
    ROOT_UID=0      #O usuário root tem um UID de 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "Você deve ser o root user para executar este script!**"
            exit
    fi

echo

echo Identidade Verificada_ Você é o Root
echo 

echo -e "\n#########################################\n"
echo -e "Por favor, selecione o modo!!!\n"
echo -e "1. Adicionar os Usuários Manualmente\n
2.Ler os Usuários Automaticamente do Arquivo de Texto\n"
echo -e "###########################################"
read add_opt
case $add_opt in
    1)
echo -e "Por favor, insira o nome do usuário:"
read usr_name
echo -e "Por favor, insira o grupo do usuário"
read usr_group
groupadd $usr_group
        useradd -g $usr_group -m $usr_name
        echo -e "Por favor, insira a senha para o usuário $usr_name"
        passwd $usr_name ;;  
    2)
       echo
       echo "O diretório de trabalho atual é: `pwd`/users.txt"
       echo
       echo -e "Você deseja usar o CAMINHO padrão acima? Sim=1 & Não=2"
       read yn
if [ $yn == 1 ]; then
                      Path=$($pwd)users.txt
else
       echo -n "Por favor, insira o caminho correto para o arquivo (ex: /root/folder/filename.txt): "
       read Path
fi
if [ -e $Path ]; then           #Se o arquivo especificado pelo usuário existir
Username=lucky
num=1
    while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Extrair Nome de Usuário do arquivo de texto
num=$(($num+1))
        Password=`grep "Password" $Path | cut -f2 -d:`       #Extrair Senha do arquivo de texto
        Group=`grep "Group" $Path |cut -f2 -d:`              #Extrair Grupo do arquivo de texto 
        
        groupadd $Group     
                #Adiciona o usuário ao sistema e dá a eles uma senha
           if [ $Username == "EOF" ]; then
                   clear
                   main
           fi
                #Adiciona o usuário ao sistema
                useradd -g $Group -m $Username 
                #Adiciona a senha dos usuários
                echo $Password | /usr/bin/passwd --stdin $Username #senha do usuário será atribuída
    done
else  #Se o arquivo especificado pelo usuário não existir
    echo -e "\n#############################################"
    echo -e "\n######NÃO É POSSÍVEL ENCONTRAR ou LOCALIZAR O ARQUIVO!!!!#####"
    echo -e "\n#############################################"
fi;;
*) echo -e "Você selecionou a opção errada!!!"
esac
        
}
varify()
{
    echo -e "#################################"
    echo -e "Por favor, selecione o modo!!!\n"
    echo -e "1.Verificar Todos os Usuários do Sistema\n
2.Verificar Todos os Usuários do ARQUIVO DE TEXTO\n"
    echo -e "#################################"
    read varify_user
case $varify_user in
        1) cat /etc/passwd |grep bash;;
        2)
    echo
        echo "O diretório de trabalho atual é: `pwd`/users.txt"
        echo
        echo -e "Você deseja usar o CAMINHO padrão acima? Sim=1 & Não=2"
        read yn
if [ $yn == 1 ]; then
                     Path=$($pwd)users.txt
else
        echo -n "Por favor, insira o caminho correto para o arquivo (ex: /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 "\nVocê tem atualmente "
          cat /etc/passwd | grep $varify |wc -l
      echo  "usuários adicionados do seu Arquivo de Texto" 
else  #Se o arquivo especificado pelo usuário não existir
      echo -e "\n#############################################"
      echo -e "\n######NÃO É POSSÍVEL ENCONTRAR ou LOCALIZAR O ARQUIVO!!!!#####"
      echo -e "\n#############################################"
fi ;;  
*) echo -e "Escolha errada"
esac
         
}

del_users()
{
#Este Script irá excluir os Usuários do DIRETÓRIO PESSOAL!!!!
ROOT_UID=0      #O usuário root tem um UID de 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "**Você deve ser o root user para executar este script!**"
            exit
    fi

echo

echo Identidade Verificada_ Você é o Root
echo
    

echo "O diretório de trabalho atual é: `pwd`/students.txt"
    
#Este é o Menu para selecionar o modo de exclusão dos usuários, seja excluir o usuário selecionado ou excluir todos os usuários que você tem no ARQUIVO DE TEXTO...???
echo -e "####################################"
echo -e "\nPor favor, selecione o modo!!!\n
1.Excluir Usuário Específico\n
2.Excluir todos os Usuários Especificados no ARQUIVO DE TEXTO\n"
echo -e "####################################"
read del_opt
case $del_opt in
    1)
        echo -e "\n\nVocê tem atualmente os seguintes USUÁRIOS adicionados ao seu sistema\n"
         cat  /etc/passwd |grep bash
        echo -e "\n\n Digite o Nome do Usuário que você deseja Excluir:"
        read user_name
        userdel -r $user_name ;;  
    2) 
       echo
       echo "O diretório de trabalho atual é: `pwd`/users.txt"
       echo
       echo -e "Você deseja usar o CAMINHO padrão acima? Sim=1 & Não=2"
       read yn
if [ $yn == 1 ]; then
       Path=$($pwd)users.txt
else
       echo -n "Por favor, insira o caminho correto para o arquivo (ex: /root/folder/filename.txt): "
       read Path
fi
if [ -e $Path ]; then       #Se o arquivo especificado pelo usuário existir
        num=1
Username=lucky      
        while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Extrair Nome de Usuário do arquivo de texto
        
        if [ $Username == "EOF" ]; then
            clear
            main
        fi
                                   
                userdel -r $Username
num=$(($num+1))
done
else  #Se o arquivo especificado pelo usuário não existir
    echo -e "\n#############################################"
    echo -e "\n######NÃO É POSSÍVEL ENCONTRAR ou LOCALIZAR O ARQUIVO!!!!#####"
    echo -e "\n#############################################"
fi ;;  
*) echo -e "Escolha errada" 
esac
}

main()
{
    opt=1
while [ $opt -le 4 ]
do
        clear
echo -e "           ### MENU ###\n 
                    1. ADICIONAR USUÁRIOS\n
                    2. Verificar Usuários\n
                    3. Excluir Usuários\n
                    4. SAIR\n"
read opt
case $opt in
    1) add_users ;;  
    2) varify ;;  
    3) del_users ;;  
    4) exit 0 ;;  
    *) echo -e "Você inseriu a opção errada!!!"
esac
    echo -e "\nDeseja executar o Script novamente Sim=1 & Não=4."
read opt
done
}
main
exit 0

Este é o arquivo de texto que eu usei com meu script

#######################################################
CRIAÇÃO POR
                     USMAN AKRAM (LUCKY)
            FA05-BTN-005
                [email protected]
#######################################################
Conta de Estudante da COMSATS Abbottabad
    ==============================
Nome do arquivo:users.txt
Ano:2008
Campus:CIIT-ABTD
Grupo:btn
##A seguir estão os usuários que serão adicionados ao DIRETÓRIO PESSOAL!!!
Username001:fa05btn001
Username002:fa05btn002
Username003:fa05btn003
Username004:fa05btn004
Username005:fa05btn005
Username006:fa05btn006
Username007:fa05btn007
Username008:fa05btn008
Username009:EOF
#será o usuário final
verificar:fa05btn
Senha:123456
Fim do Arquivo de Texto!!!!

Criado por USMAN AKRAM(Lucky), Estudante da Universidade COMSATS Abbottabad [BS(TN)-6] Endereço de E-mail: [email protected]

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.