Como adicionar um novo atributo a uma classe de objeto LDAP existente?

5

Eu criei uma classe de objeto LDAP personalizada, mas esqueci alguns atributos antes de adicioná-la ao meu servidor OpenLDAP. Eu segui as instruções nesta página de documentação do Ubuntu: link Estou executando o Ubuntu 12.04.

Então, como eu adiciono um novo atributo MAY a um objectClass que já está aplicado ao servidor?

Especificamente no OpenLDAP, mas também seria bom saber como para o Novell eDirectory.

    
por David R. 09.11.2012 / 01:14

1 resposta

5

A resposta curta

Use o ldapmodify exatamente como faria em uma entrada regular do ldap com atributos de múltiplos valores.

Isso é praticamente o que eu esperava, mas eu não tinha 100% de certeza, devido à indexação {N} que você vê quando executa uma pesquisa do ldap para o esquema.

A resposta longa

Primeiro, encontre o dn do seu esquema. Algo como cn = {4} test, cn = schema, cn = config Em seguida, escreva um arquivo ldif e aplique-o ao seu diretório. No Ubuntu 12.04 eu apliquei como root com:

ldapmodify -Q -Y EXTERNAL -H ldapi://  -f test.ldif

A parte com a qual tive problemas foi a sintaxe de modificação do ldif e o que fazer com os índices {N}.

Então, o início do seu arquivo ldif deve ser algo como:

version: 1

dn: cn={N}test,cn=schema,cn=config
changetype: modify

Para modificar uma objectClass:

delete: olcObjectClasses
olcObjectClasses: <old value>
-
add: olcObjectClasses
olcObjectClasses: <new value>

Para modificar um atributo:

delete: olcAttributeTypes
olcAttributeTypes: <old value>
-
add: olcAttributeTypes
olcAttributeTypes: <new value>

Algumas dicas que descobri sobre a sintaxe:

  • Ignore os índices {N} no seu arquivo ldif. Eles são corrigidos automaticamente.
  • Você precisa do {N} no DN do seu esquema.
  • Lembre-se do ' - ' entre as declarações.
  • Não coloque uma nova linha depois do ' - '. ldapmodify para nessa nova linha, então qualquer coisa depois disso não será executada.
  • Adicione novos atributos antes de modificar a objectClass para incluí-los.
  • Elimine todos os caracteres de tabulação. Eles fazem o sistema produzir bobagens.
por 09.11.2012 / 22:09