J'utilise l'authentification LDAP sur mon serveur Ubuntu 11.10. J'ai installé libpam-ldap et configuré les choses en conséquence. Cela fonctionne très bien, sauf que j'obtiens cette erreur de temps en temps quand j'essaie de Sudo:
Sudo: setreuid(ROOT_UID, user_uid): Operation not permitted
Je sais que les sudoers sont correctement configurés, car cela fonctionne la plupart du temps. Ce n'est pas seulement mon journal, les autres ont le même problème quand je l'ai. Lorsque cette erreur se produit, je ne peux absolument pas utiliser SSH avec mon utilisateur système habituel. Lorsque je me connecte directement, je ne parviens pas à faire démarrer un terminal gnome.
Une fois que je redémarre le serveur, le problème disparaît. 'Bien sûr, ce n'est pas une solution, si c'était un serveur de prod, je serais en difficulté.
Comment puis-je réparer ça?
Edit 3/1/12: Je viens de comprendre que si vous arrêtez et démarrez le service nscd, le problème disparaît.
service nscd stop
service nscd start
Pas beaucoup de solution puisque je dois être connecté directement au serveur, pas via ssh.
Ceci est un bogue conn qui a été introduit lorsque Debian (et donc Ubuntu) a cessé d’utiliser OpenSSL à GnuTLS avec OpenLDAP en raison des problèmes de licence liés à OpenSSL . Le problème vient de la manière dont libgcrypt
(le système de cryptage actuel pour GnuTLS ) s’initialise. Le problème existe depuis Ubuntu 9.10 et n’a pas vraiment été traité car en amont GnuTLS passe de libgcrypt
(qui a évidemment d'autres problèmes également) à libnettle . Jusqu'à ce que ce changement soit effectué en aval, il existe trois solutions de contournement possibles, qui sont toutes énumérées dans le rapport de bogue ci-dessus.
libgnutls26
de la source à utiliser libnettle
au lieu de libgcrypt
libldap
de la source à , utilisez openssl
au lieu de gnutls26
libnss-ldapd
au lieu de libnss-ldap
. Cela a plusieurs variations. Commencez par utiliser libpam-ldap
, qui extrait libnns-ldap
comme dépendance, ce qui complique la configuration. Et deuxièmement, utilisez libpam-ldapd
qui n’est pas complet. Il manque en particulier toutes les configurations pam _ * qui permettent de limiter les sous-ensembles d'utilisateurs. Afin de remédier à cette lacune, vous pouvez utiliser la superposition nssov avec slapd, mais celle-ci n’est pas incluse dans slapd avec Ubuntu (vous auriez donc besoin de compiler à partir des sources). libpam-ldapd
utilise le démon nslcd
pour gérer les recherches LDAP; il utilise donc /etc/nslcd.conf
au lieu de /etc/ldap
pour la configuration. Il est à noter que vous pouvez utiliser le pam_authz_search
pour restreindre les autorisations. Voir man nslcd.conf
pour plus de détails. Il existe également un très bon guide ici , et ici si vous devez configurer startTLS. UPDATE: À partir du 29/05/2012, un correctif était disponible dans le référentiel proposé pour Lucid , Natty , et Oneiric . Cela corrigeait les problèmes liés aux connexions LDAP. Cependant, depuis le 06/09/2012, il a été démontré que ce nouveau correctif casse d'autres paquetages 1 et a été supprimé. En outre, comme indiqué dans le ce bogue , la solution de contournement utilisant nscd ne fonctionne plus du tout. Il s’agit d’une régression regrettable et, pire, le problème n’est pas vraiment résolu dans . Précis et Quantal . En fin de compte, la seule solution consiste à abandonner libgcrypt11
pour libnettle4
. Les nouveaux libgnutls28
dans Precise et Quantal le font déjà, mais libldap
utilise toujours libgnutls26
.
Les instructions pour compiler libgnutls26
à partir de source sont expliquées dans commentaires 22 , 2 , et 24 dans ce rapport de bogue . Mais les instructions semblent ne fonctionner que pour . Précis .
Une mesure non sécurisée: désactiver SSL