O OpenLDAP oferece uma série de ferramentas para a administração de dados no diretório LDAP. A quatro ferramentas mais importantes para adicionar, apagar, pesquisar e modificar o estoque de dados são explicadas abaixo.
Depois que a configuração do seu servidor LDAP em /etc/openldap/lsapd.conf estiver correta e pronta (ela apresenta entradas apropriadas para suffix, directory, rootdn, rootpw e index), continue a inserir registros. OpenLDAP oferece o comando ldapadd para esta tarefa. Se possível, adicione os objetos ao banco de dados em pacotes por razões práticas. O LDAP é capaz de processar o formato LDIF (formato intercambiável de dados LDAP) para isso. Um arquivo LDIF é um arquivo de texto simples que pode conter um número arbitrário de pares de atributo e valor. Consulte os arquivos de esquema declarados em slapd.conf para os atributos e as classes de objeto disponíveis. O arquivo LDIF para criar uma estrutura bruta para o exemplo em Figura 45.1, “Estrutura de um diretório LDAP” teria a mesma aparência que em Exemplo 45.7, “Exemplo de um arquivo LDIF”.
Exemplo 45.7. Exemplo de um arquivo LDIF
# The SUSE Organization dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # The organizational unit development (devel) dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # The organizational unit documentation (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # The organizational unit internal IT (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it
![]() | Codificação de arquivos LDIF |
|---|---|
O LDAP funciona com o UTF-8 (Unicode). Umlauts deve ser codificado corretamente. Use um editor que suporte UTF-8, como o Kate ou versões recentes de Emacs. De outra forma, evite umlauts e outros caracteres especiais ou use recode para registrar a entrada em UTF-8. | |
Salve o arquivo com o sufixo .ldif, em seguida, transmita-o ao servidor com o seguinte comando:
ldapadd -x -D <dn of the administrator> -W -f <file>.ldif
-x desliga a autenticação com o SASL neste caso. -D declara o usuário que chama a operação. O DN válido do administrador é inserido aqui como foi configurado em slapd.conf. No exemplo atual, há cn=admin,dc=suse,dc=de. -W evita a inserção de senha na linha de comando (em texto claro) e ativa um prompt de senha separado. Esta senha foi determinada previamente em slapd.conf com rootpw. -f transmite o nome de arquivo. Consulte os detalhes da execução de ldapadd em Exemplo 45.8, “ldapadd com example.ldif”.
Exemplo 45.8. ldapadd com example.ldif
ldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.ldif Insira a senha do LDAP: adding new entry "dc=suse,dc=de" adding new entry "ou=devel,dc=suse,dc=de" adding new entry "ou=doc,dc=suse,dc=de" adding new entry "ou=it,dc=suse,dc=de"
Os dados de usuário de indivíduos podem ser preparados em arquivos LDIF separados. Exemplo 45.9, “Dados LDIF para Tux” adiciona Tux ao novo diretório LDAP.
Exemplo 45.9. Dados LDIF para Tux
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@suse.de uid: tux telephoneNumber: +49 1234 567-8
Um arquivo LDIF pode conter um número arbitrário de objetos. É possível transmitir ramificações de todo o diretório ao servidor de uma vez ou somente partes como mostrado no exemplo de objetos individuais. Se for necessário modificar alguns dados com freqüência, uma subdivisão de objetos únicos é recomendável.
A ferramenta ldapmodify é fornecida para modificar o estoque de dados. A forma mais fácil de fazer isso é modificar o arquivo LDIF correspondente e, em seguida, transmitir este arquivo modificado ao servidor LDAP. Para alterar o número de telefone do colega Tux de +49 1234 567-8 para +49 1234 567-10, edite o arquivo LDIF como em Exemplo 45.10, “Arquivo LDIF modificado tux.ldif”.
Exemplo 45.10. Arquivo LDIF modificado tux.ldif
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Importe o arquivo modificado no diretório LDAP com o seguinte comando:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif
Alternativamente, transmita os atributos para alterar diretamente para ldapmodify. O procedimento para isto está descrito abaixo:
Inicie ldapmodify e insira sua senha:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:
Insira as modificações e siga cuidadosamente a sintaxe na ordem apresentada abaixo:
dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Informações detalhadas sobre ldapmodify e sua sintaxe podem ser encontradas na página de manual de ldapmodify(1).
OpenLDAP fornece, com ldapsearch, uma ferramenta de linha de comando para pesquisar dados em um diretório LDAP e ler dados a partir dele. Uma consulta simples teria a seguinte sintaxe:
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"
A opção -b determina a base de busca—a seção da árvore dentro da qual a busca deve ser executada. No caso atual, isto é dc=suse,dc=de. Para realizar uma busca mais detalhada em subseções específicas do diretório LDAP (por exemplo, somente no departamento devel), transmita esta seção para ldapsearch com -b. -x solicita a ativação da autenticação simples. (objectClass=*) declara que todos os objetos contidos no diretório devem ser lidos. Esta opção de comando pode ser usada após a criação de uma nova árvore de diretório para verificar se todas as entradas foram registradas corretamente e se o servidor responde como desejado. Mais informações sobre o uso de ldapsearch podem ser encontradas na página de manual correspondente (ldapsearch(1)).