Debian: Problème causé par OpenLDAP et NSS (et Udevd) ( Translate to English ) Convertir en PDF Version imprimable
Appréciation des utilisateurs: / 6
FaibleMeilleur 
Ecrit le 21-02-2009 (8236 hits) ... section Services

Si on installe un service OpenLDAP et qu'on configure le serveur pour résoudre les noms d'utilisateurs et de groups sur la base LDAP (gràce à NSS via /etc/nsswitch.conf), il apparait des erreurs au cours du démarrage de la machine. Même si le service LDAP fonctionne parfaitement.

Du genre (extraits de logs pris au hasard): 

> udevd[xxx]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
> udevd[xxx]: nss_ldap: could not search LDAP server - server is unavailable
> udevd[xxx]: nss_ldap: reconnecting to LDAP server (sleeping 1 seconds)
> udevd[xxx]: nss_ldap: could not search LDAP server - Can’t contact LDAP server
> udevd[xxx]: lookup_group: error resolving group 'xxx': illegal seek

Ce problème apparait sur une Debian Etch, une Lenny, et je pense que c'est identique sous Ubuntu.

Ci-dessous voici comment j'ai résolu le problème. 

En regardant les traces ci-dessus, on voit que les messages sont générés par udevd.

Udev est démarré au niveau single, donc très tôt. Son rôle est de occuper de l'identification des périphériques sous /dev, du chargement des modules des pilotes correspondants. Le souci vient du fait qu'il change la propriété group du device par rapport à des règles définies sous /etc/udev/permissions.rules.

Voilà ou est le problème: l'appel "lookup_group" provoque une résolution du nom du groupe. Qui conformément à la configuration NSS (/etc/nsswitch.conf) essaie de le résoudre sur ldap.
Mais les couches réseaux sont pas encore montées (script "/etc/init.d/networking"),et à fortiori le serveur openLdap ne l'est pas.

Il est évident qu'on ne peux pas avancer le networking avant le montage des devices.

donc comme solution on peut dans un premier temps:

rajouter "bind_policy soft" dans le fichier /etc/libnss-ldap.conf. ca indique au module ldap de nss de ne pas rééssayer plusieurs fois la connection au serveur LDAP.

La vraie solution de contournement:

udev fait un appel à la fonction lookup_group, qui recherche le nom dans le fichier local /etc/groups puis sur la base LDAP s'il ne l'y trouve pas (ceci si on a mis "group: files ldap" dans nsswitch.conf).

Donc la solution c'est de créer en local les groupes qui sont recherchés par udev. Il faut le faire pour tous les messages "lookup_group: error resolving group 'xxx'".

Voici ceux qui sont recherchés sous Etch, et les commandes pour les créer.

Tip
addgroup --system scanner
addgroup --system nvram
addgroup --system tss
addgroup --system fuse
addgroup --system kvm
addgroup --system rdma
adduser --system --no-create-home --ingroup tss tss

La dernière commande ajoute un utilisateur, necessaire pour tss.

C'est la seule possibilité que je vois sans modifier la configuration système:

  • on pourrait modifier les fichiers permissions sous /etc/udev/permissions.rules et sous rules.d, mais les effets peuvent être hasardeux
  • sinon la seule vraie possibilité serait de modifier le code source de udev pour qu'il teste avant de faire la résolution de nom dans les fichiers locaux, où qu'il la fasse en direct, car ce n'est que que les groupes pour les devices peuvent se trouver finalement ;-)


commentaire(s)
Excellent !
Ecrit par olecam le 2010-06-22 20:42:20
Ben oui, ça fait tellement longtemps que ce problème m'agace (même si c'est sur des serveurs, sur lesquels je connecte rarement un écran) que je suis content -- voire jalou de pas l'avoir trouvé moi-même -- de voir qu'une solution, efficace et simple fonctionne. Bravo et merci !
Super
Ecrit par noel le 2010-07-06 14:01:45
Merci beaucoup!! 
Ce problème commençait sérieusement à m'agacer. 
Les explications sont très clair; c'est parfait. 
 
;-)
Nickel pile poil
Ecrit par sylvain le 2011-02-15 14:48:29
Mille fois merci pour m'avoir débloquer dans mon projet !!!
et pour suse10?
Ecrit par nounou le 2011-02-20 23:23:35
Bonsoir, merci bien pour vous conseils, au moins je sais que les messages que j'ai ne présentent pas une grave erreur . Cette méthode ne marche pas pour mon cas (suse10), vous avez une suggestion? merci bien

Commenter
  • Veuiller laisser un commentaire en relation avec l'objet.
  • Please keep the topic of messages relevant to the subject of the article.
Nom:
Titre:
BBCode:Web Address Email Address Load Image from Web Bold Text Italic Text Underlined Text Quote Code Open List List Item Close List
Commentaire:



This image contains a scrambled text, it is using a combination of colors, font size, background, angle in order to disallow computer to automate reading. You will have to reproduce it to post on my homepage
Enter what you see: *
tips: hit Reload page before writing a text if you have difficulty reading characters in image

 
< Précédent
 

Navigation
Home
Contacts
Développement
Logistique de projet
Bases de données
Systèmes
Réseaux & Télécom
Outils
Reliques
Téléchargement
Recherche
Plan du site
Administration
Agenda Online
Page cours IUT GTR
Login





Mot de passe oublié ?
Visites

Sites amis
View Nadir BOUSSOUKAIA's profile on LinkedIn
Mes photos