Como adicionar um novo atributo a um objeto de usuário LDAP existente

4

Eu quero adicionar o atributo mail aos usuários existentes do ldap. Eu acho que é possível usar o ldapmodify, mas não sei como. Eu fiz isso usando o phpldapadmin web GUI manualmente, mas eu tenho mais de 100 usuários e não quero fazer isso manualmente para todos.

Alguém pode me guiar na direção certa.

    
por Ramesh Kumar 06.12.2012 / 11:19

4 respostas

7
$ ldapmodify -H ldap://yourhost -D cn=youradmin,dc=your,dc=domain -x -W
( enter password here )
dn: uid=username,ou=people,dc=your,dc=domain
changetype: modify
add: mail
mail: [email protected]
    
por 06.12.2012 / 15:48
3

Primeiro, vou apontar para Seção 3.3 do Guia de Administração do Red Hat Directory Server para um tutorial rápido sobre como criar arquivos LDIF adequados para uso com o ldapmodify . Crie entradas para apenas alguns dos seus cem usuários para começar. Este arquivo irá ajudá-lo a obter os erros. Quando estiver familiarizado com o formato do arquivo, você poderá criar entradas para as pessoas restantes com mais de 100 anos. Veja um exemplo de como uma entrada individual pode parecer:

dn: cn=Joe Smith,dc=example,dc=com
changetype: modify
add: mail
mail: [email protected]

Os valores legais para changetype: são add , modify , delete e modrdn . Se você usar changetype: modify , as modificações legais serão add: , delete: e replace: . A Seção 3.3 lhe dará exemplos de como tudo isso funciona.

Depois de ter o arquivo escrito, você tem algumas maneiras de enviá-lo ao seu servidor LDAP. Um método é alimentar o arquivo diretamente para o comando ldapmodify :

ldapmodify -x -h $LDAP_HOST -D $LDAP_BINDDN -W -f $FILE

A opção -W informa ldapmodify para solicitar a senha para $LDAP_BINDDN na linha de comando. Isso significa que você não está deixando a senha para o servidor LDAP no arquivo histórico do shell. Se você quiser incorporar a senha ao seu comando ldapmodify , use -w $PASSWORD . A opção -f $FILE informa ldapmodify qual arquivo LDIF para examinar as alterações que estão sendo implementadas.

Na verdade, não gosto de usar a opção -f $FILE . Passar um arquivo para ldapmodify requer 100% de confiança de que eu escrevi corretamente esse arquivo LDIF. Se eu cometer um erro, ldapmodify será encerrado sem me informar do erro. Então, eu usaria um segundo método. Use o comando ldapmodify que dei como exemplo, mas sem essa opção -f $FILE . Sem essa opção, ldapmodify obtém suas modificações de STDIN . Assim, posso copiar duas ou três entradas desse arquivo LDIF que eu montei e colá-las no shell para que ldapmodify processe. Faço 2 a 4 entradas de cada vez e faço correções nas entradas do LDIF na hora, conforme necessário. Isso é mais lento do que passar um arquivo LDIF perfeito diretamente para ldapmodify , mas mais rápido do que descobrir onde cometi um erro de digitação naquele arquivo.

    
por 07.12.2012 / 18:28
2

Para editar entradas LDAP diretamente, prefiro usar o "ldapvi", que fornece um editor no qual você pode fazer as alterações de maneira mais amigável.

Veja o link

    
por 07.12.2012 / 17:44
0

Sim, você pode usar ldapmodify para isso. Você precisa gerar arquivos LDIF que contenham as instruções de mudança e, em seguida, direcione-os para o servidor LDAP com ldapmodify . Para mais informações, leia man ldapmodify , que também contém exemplos.

    
por 06.12.2012 / 11:52

Tags