3 votes

OpenLDAP ne démarre pas et n'indique pas pourquoi.

Récemment, nous avons dû redémarrer OpenLDAP sur l'un de nos serveurs. Lorsque je redémarre le service, l'invite de commande reste là à attendre quelque chose. Je n'obtiens jamais le [ OK ] . Si je CTRL+C en dehors de ça, il est dit

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

Juste pour prouver un point, j'ai fait /etc/openldap 777 de manière récursive. Je reçois toujours l'erreur.

Je ne vois rien dans /var/log changeant pour me donner un retour d'information. Où dois-je regarder pour corriger cela ?

Il s'agit d'un vieux serveur fonctionnant sous Fedora 8 (oui, je sais, c'est la faute du précédent informaticien).

9voto

Eric Noob Points 531

Voici quelques idées pour un débogage supplémentaire. Elles ne sont nécessaires que si vous êtes absolument certain qu'il ne s'agit pas d'un problème de permission...

Tout d'abord, essayez d'exécuter slapd en mode débogage :

slapd -u ldap -g ldap -d 65

Notez que l'argument de -d est un champ de bits, dont les valeurs peuvent être trouvées dans le fichier slapd.conf (recherchez loglevel ). 65 est trace + config, qui est généralement suffisamment verbeux pour ce genre de problème. Cela peut ou non vous montrer quelque chose d'utile.

Si cela ne fonctionne pas, on peut utiliser strace (un traceur d'appels système) pour comprendre exactement ce qui se passe. Exécutez slapd comme ça :

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

Quand il mourra, tu auras un dossier /tmp/trace contenant tous les appels système de slapd . Pour les curieux -f fait en sorte que strace suive les forks (pas vraiment nécessaire dans ce cas, mais c'est ma valeur par défaut), et -s 1024 permet à strace d'imprimer jusqu'à 1024 octets d'arguments de chaîne dans le journal de suivi.

Maintenant, utilisez grep pour rechercher des références à company.crt dans ce dossier. En théorie, vous trouverez quelque chose qui ressemble à ceci s'il y a un problème de permission :

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

Ou quelque chose comme ceci si le fichier est manquant :

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

Une ouverture réussie ressemble à ça :

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

Où cela 3 est le descripteur de fichier retourné par open (et sera probablement un autre entier positif).

Jetez-y un coup d'œil et voyez si quelque chose d'évident saute aux yeux. Faites-moi savoir si cela ne vous aide pas.

1voto

xited Points 131

Vous ne devriez pas définir /etc/openldap à 777. Les permissions sont parfois nécessaires pour que les choses fonctionnent correctement. Je vous suggère de le remettre à 755.

Vous avez peut-être le mauvais utilisateur ou la mauvaise permission sur les cacerts.

drwxr-xr-x 3 root root 4096 Apr 19 2007 cacerts/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X