Concordo muito que o LDAP ou sistemas semelhantes é o melhor caminho. Se você insistir em fazer isso manualmente, aqui está uma maneira:
A melhor ferramenta para este trabalho é newusers
. Você precisará criar um arquivo de texto contendo a lista de usuários e seus detalhes. Se você quiser adicionar o usuário mesmo a cada servidor, esse arquivo precisará apenas de uma linha.
-
Crie a lista de usuários. O formato geral do arquivo é
username:passwd:UID:GID:full name,room number,work phone,home phone,other:directory:shell
Então, no seu caso, você precisaria usar algo como
tom:password1:::"Tom Hanks","101","123456","654321","Tall":: danny:password2:::"Danny DeVito","102","222333","333222","Short"::
Note que deixei as opções UID, GUID, directory e shell vazias. Isso significa que os valores padrão serão usados.
-
Agora que você criou a lista, precisará copiá-la para cada máquina remota e depois adicionar os novos usuários. Salve este pequeno script como
newusers.sh
:#!/bin/bash while read ip; do scp users.txt root@$ip:/home/root ssh root@$ip newusers users.txt done
-
Torne o script executável (
chmod a+x newusers.sh
) e execute-o para cada IP no seu arquivo:newusers.sh < IPs.txt
O
IPs.txt
deve conter uma lista dos IPs dos servidores para os quais você deseja copiar, um por linha:1.2.3.4 foo.bar.com
-
Isso tudo será muito mais fácil se você tiver o ssh configurado sem senha. Se não o fizer, execute os seguintes comandos para usar chaves ssh permitindo acesso sem senha (você ainda precisará de uma frase secreta):
ssh-keygen -t rsa while read ip; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ip; done < IPs.txt