OpenLDAP não iniciará e não registrará o motivo

3

Recentemente necessário reiniciar o OpenLDAP em um dos nossos servidores. Quando eu reiniciar o serviço, o prompt de comando apenas fica lá esperando por algo. Eu nunca recebo o [ OK ] . Se eu CTRL+C dele, ele diz

...killed.
/etc/openldap/cacerts/company.crt is not readable by "ldap[WARNING]

Só para provar um ponto, fiz /etc/openldap 777 de forma recursiva. Eu ainda recebo o erro.

Não vejo nada em /var/log mudando para me dar algum feedback. Onde preciso procurar consertar isso?

Este é um servidor antigo rodando o Fedora 8 (você sabe, culpe o cara de TI anterior).

    
por Jake Wilson 15.06.2011 / 00:15

2 respostas

9

Aqui estão algumas ideias para depuração adicional. Estes são necessários apenas se você está absolutamente certo de que não é um problema de permissão ...

Primeiro, tente executar o slapd no modo de depuração:

slapd -u ldap -g ldap -d 65

Observe que o argumento para -d é um campo de bits, cujos valores podem ser encontrados na página slapd.conf man (procure loglevel ). 65 é trace + config, que geralmente é suficientemente detalhado para esse tipo de problema. Isso pode ou não mostrar alguma coisa útil.

Se isso não funcionar, podemos usar strace (um rastreador de chamadas do sistema) para descobrir exatamente o que está acontecendo. Execute slapd da seguinte forma:

strace -o /tmp/trace -f -s 1024 slapd -u ldap -g ldap -d 7

Quando ele morrer, você terá um arquivo /tmp/trace contendo todas as chamadas do sistema de slapd . Para o curioso -f faz strace seguir os garfos (não é realmente necessário neste caso, mas é meu padrão), e -s 1024 faz com que o Strace imprima até 1024 bytes de argumentos de cadeia no log de rastreio.

Agora, use grep para procurar referências a company.crt neste arquivo. Em teoria, você encontrará algo parecido com isso se o problema for de permissão:

open("/tmp/company.crt", O_RDONLY)      = -1 EACCES (Permission denied)

Ou algo assim se o arquivo estiver faltando:

open("/tmp/company.crt", O_RDONLY)      = -1 ENOENT (No such file or directory)

Uma abertura bem-sucedida se parece com isso:

open("/tmp/company.crt", O_RDONLY)      = 3

Onde 3 é o descritor de arquivo retornado por open (e provavelmente será algum outro inteiro positivo).

Dê uma olhada e veja se algo óbvio salta. Deixe-me saber se isso não ajuda.

    
por 15.06.2011 / 03:03
1

Você não deve definir / etc / openldap para 777. As permissões são necessárias para fazer as coisas funcionarem corretamente às vezes. Eu sugeriria alterá-lo de volta para 755.

Você pode ter o usuário incorreto e / ou permissão em cacerts

drwxr-xr-x 3 raiz raiz 4096 abr 19 2007 cacerts /

    
por 15.06.2011 / 02:35