web-dev-qa-db-fra.com

Pourquoi cette commande ldapadd se ferme-t-elle avec une erreur de "syntaxe non valide"?

Je suis très nouveau sur openldap mais extrêmement bien versé dans l'environnement linux/unix. J'essaie de configurer mon tout premier environnement openldap de test en utilisant le guide ici . J'ai également lu la plupart du guide d'administration ici et je dois admettre que c'est beaucoup à prendre.

Donc, en suivant le guide de configuration de base ubuntu, j'ai créé un fichier ldif qui ressemble à ceci:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups

dn: cn=engineers,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: engineers
gidNumber: 5000

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: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john

Chaque fois que j'essayais de l'ajouter en utilisant:

$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif

J'obtiens l'erreur suivante:

adding new entry "cn=engineers,ou=Groups,dc=my-domain,dc=com"
ldap_add: Invalid syntax (21)
    additional info: objectClass: value #0 invalid per syntax

adding new entry "uid=john,ou=People,dc=my-domain,dc=com"
ldap_add: Invalid syntax (21)
    additional info: objectClass: value #0 invalid per syntax

Les résultats dans google pour cette erreur ne contiennent aucune suggestion utile. Que pourrais-je faire de mal ici?

14
hax0r_n_code

Votre problème est sans aucun doute que vous devez charger le schéma nis dans votre serveur LDAP. La procédure à suivre varie selon que vous utilisez l'héritage slapd.conf fichier de configuration ou la nouvelle configuration dynamique hébergée dans cn=config et soutenu par un slapd.d répertoire.

En utilisant slapd.conf

Vous devrez include la définition du schéma dans votre slapd.conf en ajoutant une ligne suivant:

include /usr/local/etc/openldap/schema/nis.schema

Cela suppose que le nis.schema le fichier se trouve sur ce chemin; sinon, modifiez le chemin d'accès de manière appropriée.

Vous devrez redémarrer slapd pour activer le nouveau schéma.

En utilisant slapd.d

(J'inclus ceci pour être complet, bien que ce ne soit pas directement pertinent pour votre configuration actuelle).

Pour charger un schéma dans slapd si vous utilisez la dynamique cn=config configuration, vous utiliseriez ldapadd. Selon la configuration de vos ACL, la commande peut ressembler à ceci:

ldapadd -Y EXTERNAL -H ldapi:// -f /usr/local/etc/openldap/schema/nis.ldif

Cela suppose que votre slapd en cours d'exécution possède une ACL permettant l'authentification des "informations d'identification d'homologue" à root. Si cela ne fonctionne pas, vous devez fournir un DN de liaison et un mot de passe appropriés à l'aide de -D et -W.

Aucun redémarrage n'est requis dans ce cas.

11
larsks

J'ai récemment rencontré ce problème en suivant le tutoriel Ubuntu OpenLDAP Server . Résolu en supprimant tous les espaces de fin de mes lignes.

1
jamzsabb

Je le corrige en supprimant le file.ldif que je veux facturer en openldap (par exemple: data.ldif) car l'éditeur de texte vi insère parfois des caractères invisibles par erreur ou bug et cela affecte votre fichier ldif. Alors supprimez-le et vous en créez un autre et essayez de télécharger chaque instruction une par une et vérifiez avec la commande ldapsearch -x -h nameofyourserver -b “dc=whateveris,dc=com”, au revoir et j'espère vous aider avec cela.

1
hansel1