Configuration LDAP

Bjrs à tout le monde.

je n’ai pas trouve solution à mon probleme depuis un grand moment, s’il vous plait si quelqu’un a une idée faut m’oriente pour résoudre ce probleme.

voila mon probleme:
je veux ajouter des utilisateurs dans ma base LDAP en tapant le commande suivant:
#ldapadd -cxWD cn=admin,dc=lnlm,dc=africacte -f ~/myuser.ldif
il m’affiche l’erreur suivant:

Enter LDAP Password:
adding new entry "cn=mesUtilisateurs,ou=Group,dc=lnlm,dc=africacte"
ldap_add: Already exists (68)

adding new entry "uid=mesUtilisateurs,ou=Peoples,dc=lnlm,dc=africacte"
ldap_add: Object class violation (65)
additional info: no objectClass attribute

par ailleurs voila le fichier myuser.ldif
dn: cn=mesUtilisateurs,ou=Group,dc=lnlm,dc=africacte
cn: mesUtilisateurs
gidNumber: 20000
objectClass: top
objectClass: posixGroup

dn: uid=mesUtilisateurs,ou=Peoples,dc=lnlm,dc=africacte
uid: mesUtilisateurs
uidNumber: 20000
gidNumber: 20000
cn: mesUtilisateurs

sn: test
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount

loginShell: /bin/bash
homeDirectory: /home/mesUtilisateurs
userPassword: erebi

je precise que je suis debutant en linux.

Salut,

Tu es aussi débutant en annuaire ^^

AlorsEnter LDAP Password: adding new entry "cn=mesUtilisateurs,ou=Group,dc=lnlm,dc=africacte" ldap_add: Already exists (68)

Signifie que ton cn=mesutilisateurs est déjà crée. Vu qu’il est déjà crée il ne va pas te le recrée et te le signal.

Quand à ta deuxième erreur

adding new entry "uid=mesUtilisateurs,ou=Peoples,dc=lnlm,dc=africacte" ldap_add: Object class violation (65) additional info: no objectClass attribute

Il te signale que l’utilisateur que tu essaye de créer ne posséde pas d’objectclass.

Je te laisse lire ce lien pour comprendre un peu plus le fonctionnement d’un annuaire.
http://www-sop.inria.fr/members/Laurent.Mirtain/ldap-livre.html

Ce qui serait bien c’est que tu nous dise ce que tu veux faire avec ton script car je crois que tu fais tout à l’envers :confused:
De plus que veux tu faire ? Un annuaire pour des users linux ? Windows ? Pour authentifier des utilisateurs pour une application FTP, web ?

En gros un groupe (OU pour Organizational Unit) doit avoir un objectclass particuler. Un objectclass definit un groupe ou un utilisateur avec une liste d’attributs optionnels ou obligatoires.

Tu as trois types d’objectclass. Structural, Auxiliary et l’autre je ne m’en rappel plus mais je l’appel dieu. Il s’agit de l’objectclass top qui est optionnel car compris systématiquement.

Cependant dans la définition d’un groupe ou d’un utilisateur tu peux avoir seulement un objectclass de type structural.

Cordialement.

salut

certainement tes questions sont tres pertinentes pour m’aider à resoudre mon probleme.
alors ce que je veux faire:
-j’ai une application dont tous mes utilisateurs vont s’enregistrer avant d’acceder dans la salle machine
-une fois enregistrer l’application verifier dans l’annuaire s’il est autorise ou pas
donc en bref c’est un annuaire pour users linux.

et je precise aussi toutes les machines de la salle en linux et chaque utilisateur doit en avoir un repertore personnel une fois s’il a un compte.

vraiment je suis ravi de me repondre donc j’attends avec l’impatiens de vos reponses

merci

Alors déjà ton script n’est pas bon du tout.

Je n’ai pas ta vision sur ton projet mais d’après ce que je comprend tu veux juste enregistrer tes utilisateurs dans une OU (Unité d’organization ou Organizational Unit)

Si tu as plusieurs users avec des droits différents je te conseille de faire plusieurs OU. Genre compta, direction etc …

Donc je pars du principe que tout le monde est dans la même OU.

Pour réinitialiser ton annuaire si tu as besoin tu peux supprimer tout ce que tu as a fait en tapant

Un truc dans le genre.

Ensuite

ça réinitialise ton annuaire de base avec le bon nom de racine etc …

Pour ton script tu peux faire ça.

dn: utilisateurs,dc=nomdedomaine,dc=fr objectclass: organizationalUnit ou: utilisateurs

dn: groupes,dc=nomdedomaine,dc=fr objectclasse: organizationalUnit ou: groupes

Voilà, ça, ça va créer ton OU, ton container où il y aura tous tes users. Tu peux mettre autre chose qu’utilisateurs, tu peux mettre toto titi ou n’importe quoi mais sans espace enfin il me semble.
Ensuite tes utilisateurs peuvent appartenir a un groupe utilisateur (groupe commun) ou lui créer son propre groupe. En tout cas voici la syntaxe pour créer un groupe dans l’OU groupes

dn: cn=direction,ou=groupes,dc=nomdedomaine,dc=fr objectClass: posixGroup cn: direction gidNumber: 10000

Le gidNumber est un identifiant unique du groupe. L’objectClass posixGroup est utilisé pour des users linux. Pour du windows il vaut mieux utiliser GroupOfName de tête, pas sur.

Lors de la création d’un user le gidNumber doit correspondre au GID du groupe auquel le user doit appartenir. Quand à l’uidNumber d’un user il doit être UNIQUE !

Ensuite pour la création de tes users.

dn: uid=john,ou=people,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 1000 gidNumber: 10000 userPassword: password gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john

Tu as d’autres attributs. Je te laisse chercher les possibilités dans les objectclass. l’uid est le login de ton user
C’est un exemple. Regarde les schema pour trouver quels sont les attributs de ces objectclass. Car tu peux utiliser Account comme objectclass aussi.

merci je vais essayer avec cette piste et je vous ferai part apres.

Merci encore une fois de plus j’ai pu progresse quelques pas grace à tes indications et la lecture que vous avez recommande mais je me suis coince avec un autre probleme pareil qu’avant:
Alors maintenant je veux faire la création d’un Utilisateur dans un fichier ldif:
voici mon fichier:

dn: cn=koreimy,ou=Groupes,dc=lnlm,dc=africacte
cn: koreimy
gidNumber: 20000
objectClass: top
objectClass: posixGroup

dn: uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte
uid: koreimy
uidNumber: 20000
gidNumber: 20000
cn: koreimy

sn: test
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/koreimy
userPassword: ****

A l’execution m’affiche cette erreur:

root@brahim:/home/brahim# ldapadd -cxWD cn=admin,dc=lnlm,dc=africacte -f ~/myuser.ldif
Enter LDAP Password:
adding new entry "cn=koreimy,ou=Groupes,dc=lnlm,dc=africacte"
ldap_add: Already exists (68)

adding new entry "uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte"
ldap_add: Object class violation (65)
additional info: no objectClass attribute

j’ai ignore pour continuer mais malheureusement je fais la recherche je ne trouve rien.

donc je vous demande un dernier coup de main certainement je vous embêtes…

cordialement

Je t’ai mis un formulaire pour la création d’un utilisateur, pourquoi tu ne l’utilise pas ?
Concentre toi sur mon premier post. Un utilisateur est décrit pas des attributs dans un objectclass.
Or si je reprend ton script :

dn: uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte uid: koreimy uidNumber: 20000 gidNumber: 20000 cn: koreimy

Ici il n’y a pas d’objectclass. Donc comment OpenLDAP sait ou aller chercher les différents attributs que tu lui mets ? D’où ton erreur “additional info: no objectClass attribute”

Ton erreur "adding new entry “cn=koreimy,ou=Groupes,dc=lnlm,dc=africacte"
ldap_add: Already exists (68)”

Ba c’est relativement clair. Already exists ou en Français existe déjà.
Pour “voir” ce que contient déjà ton annuaire utilise la commade slapcat.

Merci, c’est bon :041

Enter LDAP Password:
adding new entry “uid=koreimy,ou=Utilisateurs,dc=lnlm,dc=africacte”

c’est tres gentil