Script para adicionar vários usuários no ubuntu (Bulk)

9

Eu preciso adicionar 10 usuários por um script no Ubuntu 12.04.

Isso pode reduzir o tempo adicionando usuários manualmente, e eu posso aplicar esse script em outra área de trabalho.

Cada usuário terá um usuário específico e em grupo específico.

Qualquer ideia?

nux
fonte

Respostas:

5

Abra um terminal e digite: vim /tmp/namepara criar um arquivo e os nomes dos usuários: por exemplo:

vim /tmp/name
mika
mery
etc

Crie Usuário com Dir Home e shell padrão:

for i in `cat /tmp/name`; do useradd -m -d /home/$i -s /bin/bash $i; done

Crie uma senha para cada usuário:

for i in `cat /tmp/name`; do passwd $i; done
Archy k
fonte
1

Experimente novos usuários echo "vivek:myUltraSecretPassword" | sudo newusers

Leszek
fonte
0

Você poderia tentar isso, suponho.

for user in {1..200}; do
    echo "Creating user$user"
    cat <<EOF | adduser --gid 500 user$user
password
password
user$user







EOF
done
kiri
fonte
aqui todos os usuários estão no mesmo grupo.
precisa saber é o seguinte
@ guntbert Eles estavam na resposta do OP também. Todos estavam em 513 nos OPs.
kiri
true, mas a pergunta dizia: "Cada usuário terá um usuário específico e em um grupo específico". - o que você poderia conseguir omitindo a --gid 500peça.
precisa saber é o seguinte
0

Veja a resposta aqui , que diz que, a menos que você tenha muitos usuários para adicionar, a melhor maneira é usar adduser(para adicionar usuários) e usermod(para adicionar um usuário a um grupo) que cuida de muitas coisas. Se você ainda deseja um script pré-fabricado, há um aqui e outro aqui , mas não sei se eles realmente funcionam para você

Ron
fonte
-1

É a minha solução. Eu criei o arquivo /tmp/userliste adicionei o nome de todos os usuários; após a conclusão do script, ele criará usuários e você poderá encontrar o nome do usuário e a senha aleatória no arquivo /tmp/userlist-created. Eu sei que não é a solução perfeita.

root@demobox:/root : cat /tmp/userlist
xyz1
zyz2
zyz3

root@demobox:/root : cat demo.sh
#!/bin/bash

if [ -f /tmp/userlist ]
then
for i in $(cat /tmp/userlist)
do
if [ -f /usr/bin/pwgen ]
then
PASSWORD=$(pwgen -1 -s 16)
else
PASSWORD=$(cat /dev/urandom | tr -dc "passwordNSR!@#$%0-9" | fold -w 9 | head -1)
fi
useradd -s /bin/bash -d "/home/$i" -m -p "$PASSWORD" "$i"
echo "$i --------- $PASSWORD" >>/tmp/userlist-created
done
else
echo "File /tmp/userlist not found"
fi
chmod 0600 /tmp/userlist-created

root@demobox:/root : ./demo.sh

root@demobox:/root : cat /tmp/userlist-created
xyz1 --------- FivSHfdbDCRffhc7
zyz2 --------- AIjFjE0bv3FslHnp
zyz3 --------- JazcGcKYp2Y0I3Rk

root@demobox:/root : egrep "xyz1|zyz2|zyz3" /etc/passwd
xyz1:x:9016:100::/home/xyz1:/bin/bash
zyz2:x:9017:100::/home/zyz2:/bin/bash
zyz3:x:9018:100::/home/zyz3:/bin/bash
Nischay
fonte