Por que esse comando ldapadd é encerrado com um erro de "Sintaxe inválida"?

15

Sou muito novo no openldap, mas extremamente bem versado no ambiente linux / unix. Estou tentando configurar meu primeiro ambiente openldap de teste usando o guia aqui . Eu também li a maior parte do guia de administração aqui e tenho que admitir, é muito aceitar.

Então, seguindo o guia de configuração básica do ubuntu, criei um arquivo ldif com esta aparência:

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

Sempre que tentei adicioná-lo usando:

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

Eu recebo o seguinte erro:

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

Os resultados no google por esse erro não trazem nenhuma sugestão útil. O que eu poderia estar fazendo errado aqui?

    
por hax0r_n_code 16.08.2013 / 15:42

2 respostas

12

Seu problema é, sem dúvida, que você precisa carregar o nis schema no seu servidor LDAP. Como fazer isso depende se você está usando o arquivo de configuração legado slapd.conf ou a configuração dinâmica mais recente hospedada em cn=config e respaldada por um diretório slapd.d .

Usando slapd.conf

Você precisará include da definição do esquema em slapd.conf adicionando uma linha nos seguintes termos:

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

Isso pressupõe que o arquivo nis.schema esteja localizado nesse caminho; se não, modifique o caminho apropriadamente.

Você precisará reiniciar slapd para ativar o novo esquema.

Usando slapd.d

(Eu estou incluindo isso para completar, embora não seja diretamente relevante para a sua configuração atual).

Para carregar um esquema em slapd , se você estiver usando a configuração cn=config dinâmica, use ldapadd . Dependendo de como suas ACLs estão configuradas, o comando pode ter esta aparência:

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

Isso pressupõe que sua execução slapd tenha uma ACL permitindo a autenticação de "credenciais de mesmo nível" para root . Se isso não funcionar, você precisará fornecer um DN e uma senha de ligação apropriados usando -D e -W .

Não é necessário reiniciar neste caso.

    
por 16.08.2013 / 16:57
1

Recentemente encontrei esse problema enquanto seguia o tutorial do Servidor do OpenLDAP do Ubuntu . Resolvi isso removendo todos os espaços em branco das minhas linhas.

    
por 31.07.2017 / 16:44