OpenLDAP não pode adicionar novo esquema

1

Estou tentando adicionar um novo esquema ao meu servidor OpenLDAP. A versão do slapd é 2.4.23. Estou usando o Debian 6.

Se eu entendi bem, o slapd 2.4+ usa a configuração do OLC com (cn = config) por padrão para esta versão e eu não tenho que modificar nada no slapd.conf ou algum outro ponto na árvore cn = config ( estou errado?). Mas quando estou tentando adicionar esquema com o seguinte comando:

ldapadd -x -D "cn=admin,cn=config" -W -f filesystem.ldif

isso me dá:

Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

Eu também tentei este comando (mesmo que eu não saiba o que estou fazendo aqui):

ldapadd -x -D "cn=admin,dc=linuxcbt,dc=internal" -W -f filesystem.ldif

onde dc = linuxcbt, dc = internal é minha base, recebo:

adding new entry "cn=filesystem,cn=schema,cn=config"
ldap_add: Insufficient access (50)

Meu arquivo filesystem.ldif é:

dn: cn=filesystem,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: filesystem

olcAttributeTypes: ( 1000.1.1.1 NAME ( 'fn' 'filename' )
   DESC 'Nome del file'
   EQUALITY 'Case exact match'
   SUBSTR caseExactSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes: ( 1000.1.1.2 NAME ( 'fs' 'filesize'  )
   DESC 'Dimensione del file'
   EQUALITY integerMatch
   ORDERING integerOrderingMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcObjectClasses: ( 1000.1.2.1 NAME ( 'dir'
   DESC 'Una directory'
   MUST fn
   MAY fs
   AUXILIARY )

olcObjectClasses: ( 1000.1.2.2 NAME ( 'file'
   DESC 'Un file'
   MUST (fn $ fs)
   AUXILIARY )

Agora estou preso a isso.

    
por shadox 28.03.2014 / 11:30

1 resposta

1

Tente

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f filesystem.ldif

Isso só funcionará se você trabalhar como root (uid = 0) ou via sudo e no servidor LDAP direto. Ele se conecta ao servidor LDAP com base no ID do usuário e ignora os métodos de autenticação normais.

Esse acesso é concedido pela regra olcAccess

{0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage  by * none

em olcDatabase={0}config,cn=config .

Para permitir o acesso da maneira "normal", você pode adicionar as seguintes linhas a olcDatabase={0}config,cn=config :

olcRootDN: cn=admin,cn=config
olcRootPW: <yourpassword>  

onde <yourpassword> deve ser pré-criptografado via slappasswd .

    
por 28.03.2014 / 11:46