Incrémenter en shell uidNumber de chaque utilisateur(Résolu)

Fermé
doudy8 Messages postés 2 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015 - Modifié par doudy8 le 2/06/2015 à 14:39
doudy8 Messages postés 2 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015 - 2 juin 2015 à 14:39
Bonjour,

je galère depuis plusieurs jours à incrémenter l'uidNumber de mes utilisateurs LDAP, voici mon fichier LDIF qui me permet de les insérer dans la base :

dn: uid=x,ou=people,dc=x,dc=x
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: CourierMailAlias
objectClass: sqAccount
objectClass: posixAccount
objectClass: shadowAccount
uidNumber:
gidNumber: 2000
cn: x
mail: x
maildrop: x
sn: x
givenName: x
uid: x
userPassword:: x

dn: uid=x,ou=people,dc=x,dc=x
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: CourierMailAlias
objectClass: sqAccount
objectClass: posixAccount
objectClass: shadowAccount
uidNumber:
gidNumber: 2000
cn: x
mail: x
maildrop: x
sn: x
givenName: x
uid: x
userPassword:: x
dn: uid=dschloup,ou=people,dc=atilf,dc=fr
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: CourierMailAlias
objectClass: sqAccount
objectClass: posixAccount
objectClass: shadowAccount
uidNumber:
gidNumber: 2000
cn: x
mail: x
maildrop: x
sn: x
givenName: x
uid:x
userPassword:: x

Je vous ai copié que 3 utilisateurs mais j'en ai un peu plus de 180, ce que j'aimerai faire c'est qu'il ait chacun un uidNumber unique mais je n'arrive pas à faire de boucle pour arriver à mes fins ..Je voudrais que le première utilisateur est un uidNumber égal à 2000 puis 2001, 2002 etc ..Je travaille essentiellement en langage shell alors si quelqu' un peut m'aider,

merci d'avance

1 réponse

nichola Messages postés 111 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 24 avril 2016 11
2 juin 2015 à 14:30
C'est kdo:

#!/bin/bash
LISTE=$(cat fichierldif.txt | grep -n "uidNumber:")
for l in ${LISTE}
do
ligne=$(echo ${l} | cut -d ":" -f1)
sed -i "${ligne}s/uidNumber:/uidNumber:${ligne}/" fichierldif.txt
done


Chaque utilisateur aura un uid qui correspondra a la ligne a laquelle se trouve l'uid courrant

çà peut aider pour les boucles:
https://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html
0
doudy8 Messages postés 2 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015
2 juin 2015 à 14:39
merci beaucoup, tu es mon sauveur,

bonne journée

a bientôt
0