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.