De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários