ldapadd / ldapmodify: esclarecimentos necessários sobre esses comamnds

6

A página ldapmodify man afirma que:

The default for ldapmodify is to modify existing entries

No entanto, quando tento importar um arquivo LDIF com ldapmodify , recebo o erro abaixo:

ldapmodify: modify operation type is missing at line X

Q1: Por que argumentos devo adicionar ao meu comando ldapmodify?

Se eu importar um arquivo LDIF usando ldapadd e a entrada já existir, recebo o erro abaixo:

ldap_add: Already exists (68)

Isso pode ser ignorado usando a opção -c (para continuar), no entanto, o ldap_add não atualizará as entradas existentes. Em vez disso, para atualizar as entradas existentes, deve-se usar ldapmodify , mas ldapmodify não adicionará entradas ausentes.

Q2: Existe uma maneira de importar arquivos LDIF criando entradas ausentes e atualizando as existentes ao mesmo tempo?

    
por Max 14.07.2011 / 14:01

3 respostas

9

O ldif para ldapmodify tem uma sintaxe diferente de um ldif normal. Por exemplo: se você quiser adicionar a entrada 'foo' com o valor 'bar' você deve escrever o seu ldif assim:

dn: cn=ToModify,dc=example,dc=com
changetype: Modify
add: foo
foo: bar

replace: mail
mail: [email protected]

delete: unneededEntry

Este ldif adicionará o atributo foo com a barra de valor, atualizará o atributo mail para [email protected] e excluirá o unneededEntry. em seguida, invoque o comando ldapmodify.

ldapmodify -f update.ldif 

(se necessário, com outras opções como autenticação simples, por exemplo)

    
por 14.07.2011 / 14:37
1

A resposta de Goez parece bem.

No entanto, se você não estiver familiarizado com o ldif, pode fazer sentido usar

ldapvi

em vez disso. Você pode editar entradas já existentes ou adicionar novas entradas.

apt-get install ldapvi
    
por 14.07.2011 / 14:54
1

Experimente o interruptor -a

Add or modify options:
  -a         add values (default is to replace)
    
por 23.09.2015 / 12:36