Bonjour à tous,
Je sèche avec une machine qui met environ 30 secondes à faire un su depuis root vers un autre utilisateur.
Dans l'autre sens la demande de mot de passe est instantanée mais l'ouverture du shell mets le même temps.
Dans le strace de la commande su j'ai un :
25.024613 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 5
0.000020 open("/proc/self/loginuid", O_WRONLY|O_TRUNC|O_NOFOLLOW) = 5
4.255104 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 5
Je précise que :
- L'ouverture du fichier /etc/passwd par un éditeur ou un cat est instantanée
- Les droits sont corrects et il n'y a pas de d'acls
- Pareil pour /bin/bash. Même problème en passant le shell sur /bin/sh
- La configuration PAM à l'air tout à fait correcte et est conforme au fichier d'origine du package
C'est une Debian Wheezy avec un noyau 3.2.0-4-amd64 et tout est à jour.
Quelqu'un aurait-il une piste ?
Merci d'avance :).
# Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Je n'appelerais pas cela une piste...
Posté par Chris K. . Évalué à 1.
Oui c'est bien possible car avec cat j'ai ceci pour open :
[^] # Re: Je n'appelerais pas cela une piste...
Posté par Chris K. . Évalué à 1.
Je me répond à moi même je suis surtout passé à coté du plus important, AMHA, l'appel poll juste avant qui part en timeout :
Ne sachant pas exactement à quoi cela correspond je retourne à mes recherches….
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Je n'appelerais pas cela une piste...
Posté par Chris K. . Évalué à 1.
C'est bien poll qui prend son temps, voici le trace presque complet (strace -T -r -o trace-t.log su mon_user) :
[^] # Re: Je n'appelerais pas cela une piste...
Posté par tatrefthekiller . Évalué à 1.
Il faut chercher quelques lignes plus haut un descripteur de fichier (fd) égal à 4. Sachant que sous Linux ça peut être aussi du réseau par ex :
Moi je parie sur un timeout DNS :-)
[^] # Re: Je n'appelerais pas cela une piste...
Posté par Chris K. . Évalué à 2.
Bingo… a priori d’après ce que j'ai pu voir rapidement c'est en rapport avec l'ouverture d'un socket vers nscd qui… n'est pas installé. Si quelqu'un de plus habitué à strace peut confirmer.
Après ne connaissant pas ce service et ne l'ayant jamais installé pourquoi diable va t il essayer de se connecter à ce truc c'est une toute autre question.
En tout cas merci à tout le monde pour le coup de main.
# Truc sur le réseau ?
Posté par benoar . Évalué à 3.
Ce genre de timeout, ça ressemble à quelque chose lié au réseau. Pourrais-tu tu faire un tcpdump voir si tu vois quelque chose ?
Je parle tcpdump avant le « reste » car je ne vois pas trop comment tu aurais pu faire des changements de config qui arrivent à ça, vu que normalement su n'y touche pas trop (autant sudo fait de la résolution de nom, mais pas su, je crois), mais aussi car vu comme c'est louche, ça pourrait être dû à quelque chose que tu ne contrôle pas (rootkit ?…).
[^] # Re: Truc sur le réseau ?
Posté par Chris K. . Évalué à 1.
Je suis aussi partit sur cette piste et j'ai vérifié quelques petits trucs comme la présence de localhost et localhost.localdomain qui pointent bien vers 127.0.0.1 dans /etc/hosts mais je n'ai rien trouvé de spécial.
Pour tcpdump ca va être coton car la machine est en utilisation (elle ne présente absolument aucun autre soucis) et il y a beaucoup de traffic… il va falloir que trouve un moyen de filtrer tout ça.
Franchement si c'est un rootkit ce sera le plus beau que je n'ai jamais vu car les vérification des signatures md5 des fichiers sont OK, il n'y a pas d'activité suspecte à aucun niveau (logs, fichiers, …) et les vérification avec rkhunter/chkrootkit et unhide sont normales.
Bref je pense plus pour une ânerie du coté du réseau avec ce fameux poll…
[^] # Re: Truc sur le réseau ?
Posté par NeoX . Évalué à 4.
au hasard, ton root est local, ton user est sur un annuaire ldap/ad
du coup
su -
est rapide car tu cherches en localsu - le_user
est plus lent car y a une recherche dans l'annuaire, annuaire qui fait peut-etre un reverse lookup de ta machine, etc[^] # Re: Truc sur le réseau ?
Posté par Chris K. . Évalué à 1.
Non non je l'aurai tout de même précisé . Pas d'annuaire et su est lent dans tous les cas de figure…
[^] # Re: Truc sur le réseau ?
Posté par NeoX . Évalué à 3.
donc dans les deux cas :
faut regarder les fichiers de configuration du shell
y a peut-etre des actions qui prennent du temps.
/etc/profile
/etc/bashrc
~/.profile
~/.bashrc
etc
[^] # Re: Truc sur le réseau ?
Posté par Chris K. . Évalué à 1. Dernière modification le 25 septembre 2013 à 20:40.
J'ai également pensé à cela mais lors d'une ouverture de session par ssh le chargement du shell est instantané. J'ai également changé le shell de l'utilisateur et le temps de réponse est toujours très long.
[^] # Re: Truc sur le réseau ?
Posté par NeoX . Évalué à 2.
ca le fait pour un utilisateur ou pour tous ?
[^] # Re: Truc sur le réseau ?
Posté par Chris K. . Évalué à 1.
Absolument tous oui, je pense que la piste nscd est effectivement la bonne. J'ai n'ai malheureusement pas encore eu le temps de la creuser.
Merci en tout cas.
Je vous tiens au courant de la suite.
# DBUSquer le problème
Posté par ecid . Évalué à 2.
Bonjour,
Voici mon analyse, pour ce qu'elle vaut:
Connexion à /var/run/dbus/system_bus_socket
La négotiation ne prend pas de temps, on envoie et reçoit (le buffer par défaut de strace ne permet pas logguer l'ensemble des messages, on ne voit pas donc pas quelle "ressource" est demandée [ord.freedesktop…]
La "ressource" demandée n'est pas disponible/ne répond pas:
On essaie une foie encore [flag EAGAIN] et on "poll" avec un timeout de 25000ms. Comme rien ne se passe, on ouvre /etc/passwd une fois ces 25s passées:
Voilà pour les 25s de perdues. Reste encore les 4 à 5 secondes restantes:
Après avoir fermé /etc/passwd, on clone le process:
Un peu plus loin, on attend que ce process fils se termine en utilisant wait4(). Cela prend 4.4s
Reste à savoir quelle ressource est demandée via dbus et ce que fait le process fils pour qu'il faille attendre encore 4.4s
Encore du strace en perspective.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.