Criando usuários a partir de uma lista

Publicado por Jorge Luiz Olimpia em 08/11/2002

[ Hits: 12.827 ]

 


Criando usuários a partir de uma lista



Se você tem uma lista para criar usuários, com senha igual ao nome do usuário, proceda da seguinte maneira:
  • crie um arquivo chamado usuario, contendo os nomes dos usuários
  • crie um arquivo chamado criauser e digite as seguintes linhas:


#!/bin/sh

for i in $(awk ´{print $1}´ usuario)  
do
    useradd $i
    grep $i usuarios | awk ´{print $1}´| passwd --stdin $i
done

Dê a permissão para executar este arquivo com o comando CHMOD e execute o comando:

# ./criauser

Outras dicas deste autor

Configurando um servidor X

Leitura recomendada

Como renomear arquivos de letras maiúsculas para minúsculas

Executando comandos em looping no shell

Introdução ao awk

sed - Eliminando linhas em branco

Equação de 2° Grau Shell Script - Zenity

  

Comentários
[1] Comentário enviado por ximex em 20/03/2003 - 10:53h

Nao estou conseguindo da sempre um erro diferente, acho que nao estou sabem disponibilizar as linhas dentro do aquivo ex:
#!/bin/shfor
i in $(awk ´{print $1}´ usuario)
do useradd $i
grep $i usuarios|awk ´{print $1}´|passwd --stdin $i
done
colquei deste jeito sera qu esta certo.

Garto Ximex

[2] Comentário enviado por cesarcardoso em 28/04/2003 - 13:10h

O correto seria

#!/bin/sh
for i in $(awk ´{print $1}´ usuario)
do useradd $i
grep $i usuarios|awk ´{print $1}´|passwd --stdin $i
done

O script dá erro porque /bin/shfor não existe :)

[3] Comentário enviado por fabio em 28/04/2003 - 14:19h

Olá,

Foi erro meu na hora de publicar a dica, corrigi as tags html, agora tá certo :)

[4] Comentário enviado por emanuelbrunopb em 05/06/2003 - 08:38h

Muito bom este script irei anotalo no meu caderno.
Valeu cara
BrunoPB

[5] Comentário enviado por rsouza em 28/08/2003 - 12:25h

Valeu pela dica, eu tinha uma lista com 100 user para criar.....

Agora posso ir para casa. hehhehehehhehe

[6] Comentário enviado por guardiangu em 14/07/2004 - 16:21h

Como posso fazer um menu no Shell para cadastro de usuários, mas só o root pode confirmar o cadastro do novo usuário?

[7] Comentário enviado por Raphael_ADB em 11/08/2004 - 11:00h

Se por acaso eu quiser criar vários usuários, porem com a senha de cada um diferente do nome do usuário...será que tem como???
Alguem ai tem o script pronto?

Valeu.

[8] Comentário enviado por regispadua em 18/02/2005 - 16:38h

Muito bom...Está dentro dos meus scripts de uso diário.

[9] Comentário enviado por bobrezende em 21/03/2006 - 11:48h

No Slackware não há a opção --stdin no comando passwd.

[10] Comentário enviado por thudojorge em 13/06/2008 - 09:12h

Alo!
seis anos depois desta dica tb deparei-me com o problema de ter uma lista de usarios e decidi escrever um script, mas o meu problema eh o mesmo que o do bobrezende . Ou seja o comando passwd nao tem essa opcao --stdin.

Alguem tem alguma outra dica?

Bom esse eh o script que tou escrevendo


#!/bin/bash
seg=$1
tipo=`file $seg 2> ERROS.txt |awk '{print $3}'`

if [ "$tipo" = "text" ];then
for nome in `cat $seg`;do
groupadd $nome 2>err_add
erro=`cat err_add`
if [ "$erro" = "" ]; then
useradd -g $nome -s/bin/bash -d/home/$nome -m -p"$nome" $nome
echo "Adicionado: $nome">> ADICIONADOS.txt
else
while [ true ]; do
let usuario+=1
echo "usuario: $nome exite, adicionando usuario
$nome$usuario">> ALTERADOS.txt
groupadd "$nome$usuario" 2>err_add
erro=`cat err_add`
if [ "$erro" = "" ]; then
useradd -g "$nome$usuario" -s/bin/bash -d/home/"$nome$usuario" -m -p"$nome" "$nome$usuario"
echo "Adicionado: $nome$usuario">> ADICIONADOS.txt
break
fi
done
fi
done


else



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts