Article 328

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Idum

Création d’utilisateurs en masse


>>> Code BASH

Description :

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.

14 août 2017 -- N.Salmon -- article_328.pdf


Idum > Développement > BASH > Création d’utilisateurs en masse
Création d’utilisateurs en masse
>>> Code BASH

Sommaire :

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

I) Avec un compteur

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

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 -- article_328.pdf

Idum

Vous aimerez peut-être aussi