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.

6voto

Zahid Hussain Points 1

Dans mon cas, le nom d'hôte (qui a été configuré dans le fichier /etc/sysconfig/network ) n'existait pas dans /etc/hosts Ainsi, en l'ajoutant au fichier susmentionné, le fichier s'ouvre rapidement.

5voto

Myorp Points 201

Je ne suis pas sûr pour Fedora, mais j'ai utilisé d'autres systèmes où sudo vérifiait d'où vous êtes connecté, ce qui, si votre DNS n'est pas bien configuré, peut prendre des lustres de temps. Cela peut également être vu lorsque vous vous connectez en SSH à la machine - cela prend des heures avant d'obtenir une invite. de temps pour obtenir une invite.

4voto

J'ai eu un problème similaire, je l'ai résolu en plaçant à la fois le nom d'hôte (par exemple mybox) et la sortie complète de la commande hostname (mybox.mydomain.com). Cela a permis de résoudre le problème. Je suis passé de 2 minutes pour ouvrir /etc/hosts à un accès instantané.

3voto

hynekcer Points 193

Cas de SELinux

Si la même commande sudo est lent seulement dans un démon et rapide sur la ligne de commande, alors il est causé par SELinux le plus probable. (SELinux = NSA Security-Enhanced Linux kernel module, activé dans Fedora par défaut).

Un cas typique est celui d'un serveur http et d'un script spécial pour la gestion du serveur, limité dans le temps. sudoers :

apache ALL=(root_or_user) NOPASSWD: /full/path/the_safe_command

Il est typique dans ce cas que rien concernant SELinux ne soit signalé dans le journal d'audit. ausearch -m avc -ts today mais le script va vite si nous désactivons temporairement l'application par setenforce 0 . (et puis retour en permettant par setenforce 1 )

Les seuls messages pertinents dans le journal du système (journalcrl) sont ceux-ci après le délai de 25 secondes :

... sudo[...] pam_systemd(sudo:session) : Échec de la création de la session : N'a pas reçu de réponse. Les causes possibles sont les suivantes : l'application distante n'a pas envoyé de réponse, la politique de sécurité du bus de messages a bloqué la réponse, le délai de réponse a expiré ou la connexion réseau a été interrompue.
... sudo[...] : pam_unix(sudo:session) : session ouverte pour l'utilisateur root par (uid=0)

La journalisation de tous les messages silencieux "dont-audit" de SElinux peut être activée par semodule -DB et désactivé à nouveau par semodule -B .
(J'espère écrire bientôt un module de politique SELinux pour ce cas ici ou une méthode de cette réponse peut être utilisé).

1 votes

Merci pour cette information. A partir de ces informations, j'ai pu trouver une article connexe qui a noté la possibilité fprintd (l'authentification des empreintes digitales) le coupable. Suppression de fprintd y fprintd-pam a résolu le problème pour moi.

0 votes

@KevinO Heureux que cela vous ait aidé à trouver une solution. Je savais cependant que mon problème était très spécifique et que ma contribution à la question ne devait être que la méthode permettant de diagnostiquer ou d'exclure un soupçon sur SELinux.

0 votes

Je lui ai absolument donné un +1 ! C'est le bus de messages qui a permis de trouver une solution. J'avais regardé plusieurs fois sur sudo slow, mais le vôtre était l'indice dont j'avais besoin.

2voto

blesh Points 544

Vérifiez votre fichier /etc/hosts et assurez-vous que vous avez une entrée pour 127.0.0.1

( fuente )

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