Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Script para adicionar usuários em massa no linux
Colaboração: Amauri Tiago Marx
Data de Publicação: 24 de Maio de 2006
Quem nunca precisou criar usuários em massa em um servidor linux?
Muitas vezes para fazer isso, os administradores adicionam um usuário no sistema, executam o comando shadowconfig off para desabilitar as senhas em shadow e passá-las para o arquivo passwd. Após isso, copiam a linha e apenas alteram o uid, e o nome da conta, ou seja, facilita a criação de usuários, porém tem-se a desvantagem de exigir algum trabalho manual e criar uma senha padrão.
Pesquisando a documentação do linux referente ao comando useradd, percebemos que existe como passar a senha através do comando useradd -p, porém esta deve estar no formato shadow-MD5.
Para resolver esse empecilho na universidade onde trabalho, criamos um script que adiciona usuários no sistema automaticamente utilizando para isso um arquivo de texto, o qual conterá o seguinte formato: conta,senha.
Para isso, criamos um arquivo em bash script chamado adiciona_usuarios.sh conforme abaixo:
#!/bin/bash IFS=' ' for LISTA in `cat usuarios.txt | cut -d , -f 1` do senhausuario=`cat usuarios.txt | grep $LISTA | cut -d , -f 2` senhacript=`/usr/bin/perl senha.pl $senhausuario` varinvalido=`echo $senhacript | egrep '[ ]'` # Adiciona usuario no sistema sem shell, cria a pasta e dá permissao /usr/sbin/useradd $LISTA -s /bin/false -d /home/$LISTA -p $senhacript /bin/mkdir -p /home/$LISTA /bin/chown $LISTA /home/$LISTA -R done exit 0
Além disso ainda temos que ter 2 arquivos: usuarios.txt (arquivo que conterá a exportação das contas dos usuários com suas respectivas senhas em texto plano) e o arquivo senha.pl (arquivo que irá transformar as senhas em texto plano dos usuários para o formato Shadow-MD5.
O arquivo usuarios.txt terá o seguinte conteúdo:
usuario1,senha1 usuario2,senha2 usuario3,senha3 usuario4,senha4
Para o script senha.pl funcionar, será necessário ter instalado no sistema o perl e o módulo do perl chamado Crypt::PasswdMD5, o qual pode ser instalado via cpan (www.cpan.org). A base para a construção deste script foi obtida na internet através de uma mensagem do Henrique Pedroni Neto para uma lista de discussão.
O script senha.pl será assim:
#!/usr/bin/perl
use Crypt::PasswdMD5;
# Criptografa a senha do usario
#
@itoa64=split(//,"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
srand();
$salt="";
for($i=0;$i<8;$i++){
$salt .= "$itoa64[rand(64)]";
}
$password=$ARGV[0];
$md5_crypted_passwd = unix_md5_crypt($password,$salt);
print("$md5_crypted_passwd");
Junte todos esses arquivos no mesmo diretório, torne executável os arquivos senha.pl e adiciona_usuarios.sh, com os comandos abaixo:
# chmod 755 adiciona_usuarios.sh senha.pl
Após ter adicionado os usuários e suas senhas no arquivo usuarios.txt, execute o comando abaixo para adicionar os usuários no sistema:
# ./adiciona_usuarios.sh
Esse script serve apenas como exemplo simples de adição de usuários no sistema de forma mais automatizada. Altere conforme suas necessidades e não esqueça de enviar uma cópia para mim. :)
Agradecimentos especiais a Fabrício Paloschi, meu colega que me ajudou a criar este script.
Veja a relação completa dos artigos de Amauri Tiago Marx
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
16 Jul 2010, 10:17
Parabéns pelo artigo!!!!
Muito útil!!!!!
Att,





