Para evitar a necessidade de informar o endereço do servidor e a base onde serão realizadas as consultas, o
OpenLDAP fornece um arquivo de configuração global para os programas que utilizam seu servidor. O arquivo é o /etc/openldap/ldap.conf. Neste tutorial utilizamos o
ldap.conf, como mostra o exemplo abaixo.
Arquivo
/etc/openldap/ldap.conf:
BASE dc=ufra,dc=br
URI ldap://ldaps://ldap.ufra.br
Para permitir consultas ldap:// e ldapi:// configuramos o arquivo
/etc/conf.d/slapd habilitando a primeira opção. O arquivo ficou da seguinte forma:
# conf.d file for openldap
#
# To enable both the standard unciphered server and the ssl encrypted
# one uncomment this line or set any other server starting options
# you may desire.
#
OPTS="-h 'ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
# Uncomment the below to use the new slapd configuration for openldap 2.3
#OPTS="-F /etc/openldap/slapd.d -h 'ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
Caso tenha criado novos arquivos em um diretório diferente do especificado, basta copiar os arquivos ldap.conf e slapd.conf para seus devidos locais. Lembrando que os arquivos /etc/openldap/ldap.conf e /etc/conf.d/slapd citados anteriormente podem ser modificações dos originais.
Copiando o ldap.conf para o diretório /etc/openldap/:
# cp ldap.conf /etc/openldap/ldap.conf
Copiando o slapd.conf para o diretório /etc/openldap/:
# cp slapd.conf /etc/openldap/slapd.conf
É importante que o usuário ldap tenha permissões de leitura e escrita nesse diretório e nesses arquivos.
Para executar a operação de inserção de forma mais rápida e sem necessidade de autenticação, tráfego de rede e outros detalhes, vamos inserir os dados iniciais com o servidor desligado. Para isso é necessário limpar a base de dados deixando apenas o arquivo de configuração do diretório, DB_CONFIG. Lembrando que nossa base dados está no diretório /var/lib/openldap-data, como informado no slapd.conf.
Salvando o DB_CONFIG:
# cp /var/lib/openldap-data/DB_CONFIG /var/lib/
Limpando o diretório do banco de dados:
# rm -Rf /var/lib/openldap-data/*
Copiando o DB_CONFIG para o diretório correto:
# cp /var/lib/DB_CONFIG /var/lib/openldap-data/
Antes de carregar o arquivo de configuração do nosso diretório (base.ldif) é necessário iniciar o servidor com o diretório openldap-data/ contendo apenas o DB_CONFIG e depois desligá-lo.
Inicializando o servidor slapd:
# /etc/init.d/slapd start
Parando o servidor slapd:
# /etc/init.d/slapd stop
NOTA: Sempre que quiser recarregar os dados com o servidor desligado é necessário limpar o diretório /var/lib/openldap-data (como descrito anteriormente) e iniciar e parar o servidor.
Agora podemos carregar nosso diretório com o servidor desligado.
# slapadd -v -l base.ldif
Nota: Tome cuidado com os caracteres inseridos pelos editores de texto.
O resultado da inserção é mostrado abaixo:
added: "dc=ufra,dc=br" (00000001)
added: "dc=professor,dc=ufra,dc=br" (00000002)
added: "dc=aluno,dc=ufra,dc=br" (00000003)
added: "dc=tecnico,dc=ufra,dc=br" (00000004)
added: "ou=agroboy,dc=aluno,dc=ufra,dc=br" (00000005)
added: "ou=bichogrilo,dc=aluno,dc=ufra,dc=br" (00000006)
added: "ou=computeiro,dc=aluno,dc=ufra,dc=br" (00000007)
added: "uid=rudini,ou=computeiro,dc=aluno,dc=ufra,dc=br" (00000008)
Para verificar o conteúdo do nosso diretório podemos usar o comando
slapcat. Temos a seguinte saída:
# slapcat
dn: dc=ufra,dc=br
dc: ufra
objectClass: top
objectClass: domain
structuralObjectClass: domain
entryUUID: f626572a-6591-102e-90a6-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000000#00#000000
dn: dc=professor,dc=ufra,dc=br
dc: professor
objectClass: domain
structuralObjectClass: domain
entryUUID: f6268e16-6591-102e-90a7-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000001#00#000000
dn: dc=aluno,dc=ufra,dc=br
dc: aluno
objectClass: domain
structuralObjectClass: domain
entryUUID: f626b422-6591-102e-90a8-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000002#00#000000
dn: dc=tecnico,dc=ufra,dc=br
dc: tecnico
objectClass: domain
structuralObjectClass: domain
entryUUID: f627c1dc-6591-102e-90a9-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000003#00#000000
dn: ou=agroboy,dc=aluno,dc=ufra,dc=br
ou: agroboy
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
entryUUID: f627e0c2-6591-102e-90aa-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000004#00#000000
dn: ou=bichogrilo,dc=aluno,dc=ufra,dc=br
ou: bichogrilo
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
entryUUID: f6280250-6591-102e-90ab-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000005#00#000000
dn: ou=computeiro,dc=aluno,dc=ufra,dc=br
ou: computeiro
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
entryUUID: f6284274-6591-102e-90ac-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000006#00#000000
dn: uid=rudini,ou=computeiro,dc=aluno,dc=ufra,dc=br
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
cn: Rudini
sn: PitBull
uid: rudini
uidNumber: 1010
gidNumber: 100
homeDirectory: /home/rudini
loginShell: /bin/bash
gecos: Rudini AuAu PitBull
userPassword:: e1NTSEF9ZHlhT3VVTm5WUTA0dVJ3cTVrNTVLY3dHZ3VtT0VaaHA=
structuralObjectClass: inetOrgPerson
entryUUID: f628b98e-6591-102e-90ad-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000007#00#000000