web-dev-qa-db-fra.com

Comment réparer Sudo: setreuid (ROOT_UID, user_uid): Erreur d'opération non autorisée?

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.

3
David R.

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.

  1. Compiler libgnutls26 de la source à utiliser libnettle au lieu de libgcrypt
  2. Compilez libldap de la source à , utilisez openssl au lieu de gnutls26
  3. Utilisez 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 .

5
Chris

Une mesure non sécurisée: désactiver SSL

0
Fabio Feitosa