Script pour ajouter plusieurs utilisateurs dans Ubuntu (Bulk)

9

J'ai besoin d'ajouter 10 utilisateurs par un script dans Ubuntu 12.04.

Cela pourrait réduire le temps en ajoutant des utilisateurs manuellement, et je peux appliquer ce script sur un autre bureau.

Chaque utilisateur aura un utilisateur spécifique et dans un groupe spécifique.

Une idée?

nux
la source

Réponses:

5

Ouvrez un terminal et tapez: vim /tmp/namepour créer un fichier et les noms des utilisateurs: ex:

vim /tmp/name
mika
mery
etc

Créer un utilisateur avec Home Dir et shell par défaut:

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

Créez un mot de passe pour chaque utilisateur:

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

Essayez les nouveaux utilisateurs echo "vivek:myUltraSecretPassword" | sudo newusers

Leszek
la source
0

Vous pouvez essayer cela, je suppose.

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







EOF
done
kiri
la source
ici, tous les utilisateurs sont dans le même groupe.
guntbert
@guntbert Ils étaient également dans la réponse du PO. Tous étaient en 513 dans les PO.
kiri
vrai, mais la question disait: "Chaque utilisateur aura un utilisateur spécifique et dans un groupe spécifique." - que vous pourriez réaliser en omettant la --gid 500partie.
guntbert
0

Regardez la réponse ici , qui dit que si vous n'avez pas beaucoup d'utilisateurs à ajouter, la meilleure façon est d'utiliser adduser(pour ajouter des utilisateurs) et usermod(pour ajouter un utilisateur à un groupe) qui s'occupe de beaucoup de choses. Si vous souhaitez toujours un script prédéfini, il y en a un ici et un autre ici , mais je ne sais pas s'ils fonctionnent vraiment pour vous

Ron
la source
-1

C'est ma solution. J'ai créé le fichier /tmp/userlistet ajouté le nom de tous les utilisateurs, une fois le script terminé, il créera des utilisateurs et vous pourrez trouver un nom d'utilisateur et un mot de passe aléatoire dans le fichier /tmp/userlist-created. Je sais que ce n'est pas une solution parfaite.

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
la source