132 votes

Pourquoi la commande sudo prend-elle du temps à s'exécuter ?

Je me suis mis à Linux (Fedora 10, puis 11) au cours des derniers mois (et j'en profite énormément - c'est comme si je redécouvrais l'informatique, il y a tant de choses à apprendre).

J'ai ajouté mon utilisateur à la dernière ligne de l'interface utilisateur. /etc/sudoers comme indiqué ci-dessous, afin qu'on ne me demande pas mon mot de passe lorsque j'exécute le programme de gestion des données. sudo comando:

MyUserName ALL=(ALL) NOPASSWD:ALL

Maintenant, chaque fois que j'exécute une commande en utilisant sudo En revanche, il s'arrête un certain temps avant d'effectuer la tâche (~10 secondes). Pourquoi cela se produit-il et comment puis-je y remédier ? J'utilise Sudo version 1.7.1 sur Fedora 11 x86 64.

0 votes

Techniquement, cela compte comme l'édition d'un script, non ? Un script n'est pas un programme ?

6 votes

NOPASSWD : est considéré comme un risque de sécurité et va à l'encontre de l'objectif de l'utilisation de sudo en premier lieu.

1 votes

Je peux l'admettre, mais la question demeure de savoir pourquoi cela prend autant de temps.

194voto

Cuga Points 101

J'ai posé cette question sur SO et elle a été déplacée ici. Cela dit, je n'ai plus la possibilité d'éditer la question comme si elle m'appartenait, ni même d'accepter la bonne réponse, mais il s'est avéré que c'était la vraie raison et la façon de la résoudre :

Trouvé ici L'utilisateur "rohandhruva" y donne la bonne réponse :

Cela se produit si vous modifiez le nom d'hôte pendant le processus d'installation.

Pour résoudre ce problème, modifiez le fichier /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 <ADD_YOURS_HERE> 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 <ADD_YOURS_HERE>

4 votes

C'est vrai. Il est assez surprenant que des distributions comme Fedora ne modifient pas /etc/hosts si vous changez votre nom d'hôte au moment de l'installation, mais peu importe. C'est l'open source pour vous !

2 votes

Cela a corrigé mon utilisation lente de sudo, merci ! J'ai édité /etc/hostname, et j'ai juste oublié d'éditer le fichier /etc/hosts.

2 votes

L'ajout de votre nom d'hôte à la ligne 127.0.0.1 ou ::1 peut empêcher certains logiciels liés au serveur de se lier au bon nom d'hôte/IP/interface. Un tel exemple est Cloudera Manager, les services hadoop obtiennent le mauvais nom d'hôte et confondent CM parce qu'ils résolvent tous à localhost. Je suggère de lire les autres réponses ci-dessous pour trouver une solution possible. Cela peut ou non causer des problèmes à une station de travail autonome à laquelle aucun autre ordinateur ne se connecte.

30voto

MattB Points 756

Vérifiez que votre démon syslog fonctionne correctement ; c'est ce qui a causé le problème pour moi.

Exécutez la commande suivante

logger 'Hello world'
  1. La commande revient-elle dans un délai raisonnable ?

  2. Est-ce que "Hello world" apparaît dans /var/log/syslog ?

Si ce n'est pas le cas, le démon syslog s'est écrasé. Le redémarrer devrait résoudre votre problème.

11 votes

Étonnamment, c'était le problème pour moi. Qui l'aurait cru. La solution pour moi était juste de redémarrer syslog. service rsyslog restart

0 votes

Même chose ici. service rsyslog restart a corrigé mes commandes sudo lentes.

0 votes

Étonnamment, c'était le problème pour moi. Avant cela, toute la requête pour le serveur est si lente. Je voudrais juste savoir pourquoi ?

18voto

Simon Points 9025

Est-ce que l'un des fichiers/répertoires qu'il doit lire se trouve sur un montage en réseau, ou est-ce qu'il déclenche d'une manière ou d'une autre la lecture à partir d'un périphérique usb lent ? Essayez strace et voyez où c'est lent ; si ça passe trop vite, faites

sudo strace -r -o trace.log sudo echo hi

Chaque ligne commencera par le temps écoulé depuis l'entrée dans l'appel syscall précédent.

(Le sudo initial semble être nécessaire ; je ne sais pas à quel point cela perturbera les résultats).

0 votes

Merci. C'est sur le disque dur, pas sur un disque USB ou réseau.

0 votes

@Cuga : et qu'avez-vous appris de Strace ?

0 votes

@oligofren : vous devez faire sudo strace

14voto

jeffreypriebe Points 1070

J'ai récemment découvert que j'avais le même problème. Il n'y avait pas de délai sudo et puis tout d'un coup, un délai d'environ 10-20 secondes. J'ai déterminé le problème spécifique en utilisant :

 1. chmod u+s /usr/sbin/strace  (as the root user)

Comme vous-même :

 1. sudo -K
 2. strace sudo /bin/tcsh

Et ensuite trouver où les appels système sont suspendus.

Dans MON cas, j'ai découvert qu'il s'accrochait à une traduction DNS, apparemment l'un des DNSen de ma liste sur /etc/resolv.conf a été très loufoque ou a mal tourné. J'ai donc changé l'ordre de résolution et pouf, les choses ont à nouveau fonctionné rapidement.

0 votes

La meilleure réponse (pour moi) ! J'ai découvert que mon courtier DBus se plantait à la déconnexion du réseau et que sudo/KDE perdait le temps de s'y connecter. Merci !

0 votes

Merci, ça m'a aidé. J'ai également dû annuler une modification antérieure de l'adresse de l'utilisateur. hosts dans mon /etc/nsswitch.conf. J'avais ajouté "resolve dns" comme préfixe à la ligne hosts valeur. Lorsque j'ai supprimé ce préfixe, sudo était à nouveau rapide.

10voto

Andrew Points 101

J'ai eu le même problème, j'ai vérifié /var/log/auth.log et syslog pour les erreurs. Il s'avère que mon serveur LDAP ne pouvait pas être atteint et que cela ralentissait tout.

Je n'utilise plus l'authentification basée sur LDAP, j'ai donc supprimé toutes les références "ldap" de /etc/nsswitch.conf.

Depuis, tout fonctionne à nouveau comme un charme.

0 votes

Pourquoi postez-vous une réponse qui n'a manifestement aucun rapport (le PO n'a pas utilisé LDAP) à une question vieille de cinq ans ?

10 votes

Parce que ça pourrait aider n'importe qui. J'ai vérifié toutes les choses qui ont été mentionnées ici, mais rien n'a aidé. Quelqu'un d'autre pourrait s'intéresser à la bonne direction avec ma réponse en vérifiant s'il a des problèmes de connexion LDAP comme raison sous-jacente de la lenteur et de l'absence de réponse de la commande sudo. C'est aussi pertinent que les réponses relatives au DNS, car quelque chose de caché est en cause et n'est pas directement visible pour l'utilisateur. Je considère ce site comme une source générale de connaissances et pas seulement comme un site de type question/réponse. Il s'agit de rassembler des connaissances pertinentes.

8 votes

Et qui êtes-vous pour discréditer mon aide ? Ce site fonctionne parce que le partage des connaissances est encouragé, pas parce que les gens sont déconsidérés. Si vous n'aimez pas ça, alors vous avez le droit de l'ignorer.

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