Eu preciso fazer um lote de usuários

1

Eu tinha escrito algum código que me permitiria fazer um lote de usuários com base em um arquivo com nomes de usuário. Mas, eventualmente, passou de apenas algumas linhas para cerca de 50, e eu deletei. Tem que haver um jeito melhor e estou preso.

Meu objetivo é ter um script bash que faça vários usuários com senhas e UIDs personalizados e adicione aos grupos. Alguém poderia me mostrar um exemplo de um script que faria isso?

    
por Temple Pate 20.05.2015 / 17:00

2 respostas

2

Abra o terminal e digite:

sudo newusers /tmp/userlist.txt  

No arquivo userlist.txt, cada linha deve conter dados do usuário na seguinte sintaxe:

username:password:User ID:Group ID:Comments:Userhome directory:User shell  

Como o arquivo userlist.txt contém as senhas dos usuários, ele não deve ser armazenado em um formato legível após a conclusão da criação dos novos usuários. Meu conselho é armazenar o userlist.txt em um arquivo que é criptografado com uma senha strong e depois de ter armazenado o arquivo userlist.txt criptografado com segurança, para excluir o arquivo userlist.txt original do diretório /tmp para que ninguém pode ler as senhas do usuário como texto simples.

Para mais informações sobre a sintaxe do tipo de comando newusers :

man newusers  

Nos resultados man para newusers , o campo GECOS também é conhecido como o campo de comentário para um usuário.

Verifique o arquivo /etc/passwd para ver se os novos usuários foram criados. A maneira mais fácil de fazer isso é mostrar uma lista apenas dos nomes dos usuários (há menos informações desnecessárias para ler dessa maneira) usando o comando:

cut -d: -f1 /etc/passwd  
    
por karel 20.05.2015 / 17:26
0

Você precisará da ferramenta pwgen para criar senhas aleatórias

Crie um arquivo (users.txt) com nomes de usuário delimitados por \ n:

userA
userB
userC

Escreva um script bash que leia stdin:

while read user
do
  password=$(pwgen -N 1)
  sudo useradd $user -m -s /bin/bash 
  sudo passwd $user $password

  echo Created $user with password $password
done

Por fim, chame o script: cat users.txt | / bin / bash my_script.sh

    
por ulicar 20.05.2015 / 17:25