Bonjour,

Je débute en perl (1ère année d'info) avec le confinement dur de pas avoir le prof pour poser des questions.
Je voulais me faire un script permettant d'ajouter un/des utilisateurs à la base de données ainsi que dans le ldap. Côté base de données, le script se déroule sans encombre, mais côté LDAP rien ne se passe.

Je possède un .csv contenant : identifiant, nom, prenom, mot_passe, email, iduser, idgroup, date_expiration

Code perl : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use strict;
use warnings;
use Net::LDAP;

............... Ce qui précède concerne base de données donc OK ...............

#Connection ldap

my $ldap = Net::LDAP->new('blabla', port => 389, version => 3) or die "Impossible de contacter l'annuaire";

#Identification
$ldap->bind ("cn=Foo, dc=Foo, dc=com", password => "secret);

#Chemin d'accès du csv
my $csv = '/Toto/users.csv' ;

#Ouverture du fichier csv + décomposition etc
open (my $fh, '<', $csv) or die "Impossible d'ouvrir le $csv";

C'est surement là où ça cloche :D J'aimerai récupérer les infos de mon csv entre les virgules et les injecter dans l'ajout d'un enregistrement d'un utilisateur
while (my $line=<$fh>) {
   chomp $line;
   my @don = split (/,/, $line);
 $mesg = $ldap->add( "uid='$don[1],o=users,dc=com",
    attr => [
        objectClass   =>
            [ 'top', 'person','organizationalPerson' ,'inetOrgPerson', 'posixAccount', 'shadowAccount' ],
        uid     => '$don[0]', // qui représente la donnée identifiant
        cn            => '$don[2]$don[1]', // qui représente les données prénom et nom 
        sn            => '$don[1]', // qui représente la donnée nom
        givenName => '$don[2]' // qui représente la donnée prénom
        uidNumber     => $don[5], // qui représente la donnée iduser
        gidNumber     => $don[5], // qui représente la donnée idgroup
        homeDirectory => '/home/don[0]', // qui représente le /home/identifiant
        description   => '$don[2]', 
        loginShell    => '/bin/bash',
        mail           => '$don[2]$don[1]'@exemple.com', // qui représente les données prénom et nom 
        shadowMin => '0',
        shadowMax   => '999999',
        shadowWarning => '7',
        shadowInactive => '-1',
        shadowExpire => '17266',
        shadowFlag => '0',

    ]
  );

// Peut -être vider le tableau ?
}

#Chemin d'acc
close $fh;

J'espère que c'est clair car au vue de l'heure

Merci à vous