#!/bin/bash # Ce code source provient du site : # https://wiki.bruno-tatu.com/doku.php?id=wiki:ajouter-massivement-utilisateurs-openldap if [ -z $1 ]; then echo Merci de renseigner en paramètre le fichier contenant une liste de compte utilisateurs pour OpenLDAP. exit 1 fi read -p "Merci de renseigner votre CN (ex: dc=local,dc=net) : " cn i=0 # Lecture ligne par ligne du fichier : while read line do # La ligne en cours de lecture sera stocké sous forme de tableau : info=($line) # Enregistrement d'une nouvelle entrée dans un fichier temporaire : cat > out.ldif.$i <<_EOF_ dn: cn=${info[0]} ${info[1]},ou=users,ou=iut,${cn} objectClass: top ObjectClass: inetOrgPerson objectClass: posixAccount cn: ${info[0]} ${info[1]} uid: ${info[2]} sn: ${line[0]} uidNumber: $((i+1010)) gidNumber: 2000 homeDirectory: /home/users/${info[1]} loginShell: /bin/sh userPassword: {crypt}${info[2]} _EOF_ i=$((i+1)) done < $1 # Compilation des entrées dans un seul fichier : cat out.ldif* > sortie_ajout_massif_utilisateurs.ldif rm -r out.ldif* echo "Succès de la compilation du fichier sortie_ajout_massif_utilisateurs.ldif." read -p "Souhaitez-vous mettre à jour la base LDAP ? (o/n) " pass if [ $pass == "o" ]; then read -p "Merci de renseigner le nom du manager (ex : admin) : " nom ldapadd -W -D cn=$nom,$cn -x -H ldap://localhost -f sortie_ajout_massif_utilisateurs.ldif fi