Pregunta

Me postulo valgrind de la siguiente manera: -

/ usr / local / bin / valgrind "process_name"

Después de excecution me facilita siguiente error

==21731==
==21731== Warning: Can't execute setuid/setgid executable: 
==21731== Possible workaround: remove --trace-children=yes, if in effect
==21731==
valgrind: "process name": Permission denied

Mi permiso valgrind es el siguiente: - -r-sr-xr-x / usr / / bin / valgrind locales

Mi permiso proceso es el siguiente: - -r-sr-xr-x "process_name"

Plataforma: Linux VMLINUX3 2.6.9-78.0.22.ELsmp (RHEL)

versión Valgrind: valgrind-3.5.0

Cualquier ayuda en esto se apreciará

¿Fue útil?

Solución

Este es un problema perpetuo para las personas que desarrollan sistemas de archivos fusible. este enlace puede ayudar a (es bastante literalmente, demasiado como para consolidar en una sola respuesta). La solución alternativa implica un reemplazo justo a tiempo de fusermount, y (dependiendo), algunas opciones adicionales para valgrind para evitar que los niños de rastreo.

De hecho, si se ejecuta bajo mis FS valgrind, se obtiene este resultado (sí, suficientes personas tenían ese problema que realmente detectado valgrind en el arranque y se muestran link):

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 ....

Lo más fácil que hacer es la totalidad de su depuración en una máquina virtual desechable corriendo como root, donde sólo se puede abandonar el bit setuid, y hacer con ella. Asegúrese de probar su Código de no presentar fugas o violaciónes, su bastante fácil de probar cualquier código de la biblioteca vinculada no mediante fusibles. Entregar su construcción off 'valgrind-limpia' y observe que haya hecho en la documentación.

A continuación, apoderarse de algunos bits de cada valgrind/valgrind.h para detectarlo y mostrar un mensaje corto para los que van por delante y ejecutar todos modos. Hacks para trabajar alrededor de ella requerir la cooperación de la raíz, y francamente, se hacen mucho más fácil en un entorno limitado igual de bien.

También es bastante fácil de negarse a ejecutar bajo valgrind con el bit setuid en adelante, mostrando un mensaje útil para las personas que lo convierten de si realmente quieren hacerlo.

Otros consejos

supongo respuesta más sencilla sería la de eliminar el bit setuid / setgid durante la depuración. Por supuesto, si el programa realmente necesita privilegios de root tendrá que probablemente ejecutar valgrind como root o desde valgrind en sí parece ser setuid simplemente chown a root: root. Si se ejecuta valgrind después de que va a tener privilegios de root (y así será para niños - Procesos depurados).

A continuación, debería ser capaz de ejecutar valgrind sobre dicha solicitud.

Sólo tenga cuidado, ya que será la introducción de un gran agujero de seguridad en su sistema. solución más segura sería la creación de grupo especial sólo para los usuarios que deben ser capaces de correr valgrind (setuid) y partir de ahí ...

Estoy asumiendo que usted ha intentado ejecutarlo con --trace-children = no? Si usted tiene acceso a la raíz, no parece ser una solución aquí .

Esto ocurre incluso cuando las cosas se ejecutan como usuario root :) La mejor manera es cambiar las ondulaciones permanentes para eliminar "s", y ejecutar

ejecutar el comando valgrind como root (o quien sea el usuario set-uid es), entonces el programa no tendrá que hacer uso de la configuración del UID.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top