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 <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c2VxIDEgMTAwPC9jb2RlPg=="></span>;
do
        user=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZWNobyB1c2VyJGk8L2NvZGU+"></span>
        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 [ <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YXB0aXR1ZGUgc2VhcmNoIGRvczJ1bml4IHwgdHIgLXMgJnF1b3Q7ICZxdW90OyB8IGN1dCAtZCAmcXVvdDsgJnF1b3Q7IC1mIDEsMiB8IGdyZXAgJnF1b3Q7XmkmcXVvdDsgfAp3YyAtbDwvY29kZT4="></span> -ne 0 ];
then
echo "Deja installe";
else
aptitude -y install dos2unix
fi

dos2unix ./$filenamecsv

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

if [ <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YXB0aXR1ZGUgc2VhcmNoIHVuYWNjZW50IHwgdHIgLXMgJnF1b3Q7ICZxdW90OyB8IGN1dCAtZCAmcXVvdDsgJnF1b3Q7IC1mIDEsMiB8IGdyZXAgJnF1b3Q7XmkmcXVvdDsgfAp3YyAtbDwvY29kZT4="></span> -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=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZWNobyAkdmFybGlnbmUgfGN1dCAtZCAnOycgLWYyPC9jb2RlPg=="></span>
        password=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZWNobyAke3Bhc3N3b3JkLCx9IHwgc2VkICdzL14uXHwgW2Etel0vXFUmYW1wOy9nJzwvY29kZT4="></span>
        username=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZWNobyAkdmFybGlnbmUgfGN1dCAtZCAnOycgLWY0PC9jb2RlPg=="></span>
        username=<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZWNobyAke3VzZXJuYW1lLCx9PC9jb2RlPg=="></span>

        echo "creation de l'utilisateur : $username"
        useradd -m -d /home/$username $username
        echo "$username:$password" | chpasswd
done
 
 
 
 
 
Commentaires :