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.


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.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Amauri Tiago Marx