Création d’utilisateurs en masse
>>> Code BASH
Version PDF

Dans cette astuce, nous apprendrons à créer un script pour ajouter des utilisateurs en masse avec un compteur. Puis dans un deuxième temps nous apprendrons à créer des utilisateurs à partir d’une liste d’utilisateur.


Sommaire :

I) Avec un compteur
II) Avec une liste de noms


I) Avec un compteur

Haut de page

Le script ci-dessous va vous permettre de créer des utilisateurs en masse sur votre système en créant leur répertoire "Home" et leur mot de passe.
Le mot de passe et login seront identique.

#!/bin/sh

for i in `seq 1 100`;
do
       user=`echo user$i`
       echo "creation de l'utilisateur : $user"
       useradd -m -d /home/$user $user
       echo "$user:$user" | chpasswd
done

II) Avec une liste de noms

Haut de page

Votre fichier doit être un fichier CSV avec séparation point-virgule. Une ligne par personne. Respectant le schéma ci-dessous :

ID ;Prenom ;Nom ;UserID ;

- Voici un exemple de mon fichier liste de noms.csv :

1;Jesper;Gauvin;jgauvin
2;Romaine;Authier;rauthier
3;Agrican;Auclair;aauclair
4;Paul;Daoust;pdaoust
5;Madeleine;Latourelle;mlatourelle
6;Michèle;Pelletier;mpelletier
7;Calandre;Petit;cpetit
8;Scoville;Lafrenière;slafrenière
9;Belisarda;Chauvin;bchauvin

- Vous pouvez télécharger le fichier que j’ai utilisé comme exemple :

wget http://idum.eu/Telechargements/Scripts/article_326/listedenoms.csv

Nous utiliserons le champ "UserID" comme nom d’utilisateur. Et le champ "Prenom" comme mot de passe.

Voici le script :

#!/bin/sh

################################################################
# Partie nom du fichier
################################################################

echo -e "\nVotre fichier doit etre un fichier csv avec séparation point-virgule."
echo -e "Une ligne par personne respectant le schema ci-dessous :"
echo -e "ID;Prenom;Nom;UserID;"
echo -e "Comment ce nomme votre fichier liste de noms :\n"
read filenamecsv

if [ -e ./$filenamecsv ];
then
       echo -e "\nLe fichier existe\n"
else
       echo -e "\nECHEC : Le fichier est introuvable\n"
       exit 1
fi

################################################################
# Partie conversion
################################################################

if [ `aptitude search dos2unix | tr -s " " | cut -d " " -f 1,2 | grep "^i" |
wc -l` -ne 0 ];
then
echo "Deja installe";
else
aptitude -y install dos2unix
fi

dos2unix ./$filenamecsv

################################################################
# Partie suppresion accents
################################################################

if [ `aptitude search unaccent | tr -s " " | cut -d " " -f 1,2 | grep "^i" |
wc -l` -ne 0 ];
then
echo "Deja installe";
else
aptitude -y install unaccent
fi

unaccent ISO-8859-1 < ./$filenamecsv >  ./listedenomsnoaccent.csv

################################################################
# Partie Ajout
################################################################

cat ./listedenomsnoaccent.csv | while read varligne
do
       password=`echo $varligne |cut -d ';' -f2`
       password=`echo ${password,,} | sed 's/^.\| [a-z]/\U&/g'`
       username=`echo $varligne |cut -d ';' -f4`
       username=`echo ${username,,}`

       echo "creation de l'utilisateur : $username"
       useradd -m -d /home/$username $username
       echo "$username:$password" | chpasswd
done
 
 
14 août 2017  --  N.Salmon
 
 
 
 
Commentaires :
Répondre à cet article
 
 
Se connecter | Copyright © 2016 Idum