Je suis en train d'exécuter Valgrind comme suit: -
/ usr / local / bin / valgrind "Noms" P>
Après l'excision, il me donnait suite à une erreur p> Mon autorisation de Valgrind est la suivante: -
-r-sr-xr-x / usr / local / bin / valgrind p> Mon autorisation de processus est la suivante: -
-r-sr-xr-x "Nom de process_noms" p> Plate-forme: Linux vmlinux3 2.6.9-78.0.22.ELLP (RHEL) P> Valgrind Version: Valgrind-3.5.0 < / p> Toute aide à ce sujet sera appréciée p> p>
5 Réponses :
Exécuter la commande Valgrind en tant que root (ou quiconque l'utilisateur SET-UID), le programme n'aura que l'utilisation de l'UID. P>
Parfois, ce n'est tout simplement pas possible :)
Je suppose que vous avez essayé de l'exécuter avec --Trace-enfants = non? Si vous avez un accès root, il semble y avoir une solution de contournement ici < / a>. p>
Ce lien est maintenant mort.
La page peut être trouvée sur la machine de navigager. web.archive.org/web/20100100123225207/http://old.nlambe.com/...
Je suppose que la réponse la plus simple serait de supprimer le bit SETUID / SETGID tout en débogage. Bien sûr, si le programme a vraiment besoin de privilèges racines, vous devrez probablement exécuter Valgrind en tant que root ou, car la valcrine lui-même semble être sécurisée, vient de le chier pour racine: racine. Si vous exécutez la valcrine après cela, il aura des privilèges root (et cela sera-t-il donc des enfants - processus débogué). P>
Vous devriez alors pouvoir exécuter Valgrind sur cette application. P>
Soyez juste prudent, car vous introduisez un grand trou de sécurité dans votre système. Solution plus sûre serait de créer un groupe spécial uniquement pour les utilisateurs qui devraient pouvoir exécuter (setuid) Valgrind et partir de là ... P>
Si seulement c'était aussi simple dans tous les cas. Le fusible s'appuie sur une assistante séduide, qui ne peut pas être non définie par les utilisateurs de sous-idpriv pour le débogage, de sorte qu'il est extrêmement difficile de détecter des fuites de mémoire dans les systèmes de fichiers de fusible. Cependant, bonne réponse pour le sujet à portée de main, désolé de descendre sur une tangente, c'est l'une de mes frustrations quotidiennes :)
Vrai, comme (presque), il y a toujours des exceptions, mais généralement cette approche devrait faire l'affaire.
Juste courir Valgrind alors que la racine ne semblait pas suffisamment, mais chown a travaillé! :)
Ceci est un problème perpétuel pour les personnes qui développent des systèmes de fichiers fusibles. Ce lien peut aider (il est littéralement trop à consolider en une seule réponse). Le travail autour implique un remplacement juste à temps de FuserMount et (selon), certaines options supplémentaires à la valorisation de la valorisation afin de l'empêcher de tracer des enfants.
En fait, si vous exécutez mon FS sous Valgrind, vous obtenez cette sortie (oui, suffisamment de personnes ont eu ce problème que j'ai réellement détecté Valgrind sur démarrage et affiché le lien): P>
root@tower:~ # valgrind xsfs /xs ==9479== Memcheck, a memory error detector. ==9479== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al. ==9479== Using LibVEX rev 1884, a library for dynamic binary translation. ==9479== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP. ==9479== Using valgrind-3.4.1, a dynamic binary instrumentation framework. ==9479== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al. ==9479== For more details, rerun with: -v ==9479== ******** Valgrind has been detected by xsfs ******** If you have difficulties getting xsfs to work under Valgrind, ******** see the following thread: ******** http://www.nabble.com/valgrind-and-fuse-file-systems-td13112112.html ******** Sleeping for 5 seconds so this doesn't fly by ....
Cela se produit même lorsque les choses étaient courues en tant qu'utilisateur root :) Le meilleur moyen est de changer les permanentes pour supprimer "s" et exécuter p>
suid ne signifie pas racine. Cela signifie que définir l'ID utilisateur où "l'utilisateur" peut être n'importe quoi.