Me conecté como root pero
straceme da esto:root @ kyznecov-System: / home / kyznecov # ps -e | grep 111 3807 pts / 2 00:00:00 111 3810 pts / 2 00:00:00 111 root @ kyznecov-System: / home / kyznecov # strace -p 3810 adjuntar: ptrace (PTRACE_ATTACH, ...): Operación no permitida No se pudo adjuntar al proceso. Si su uid coincide con el uid del objetivo proceso, verifique la configuración de / proc / sys / kernel / yama / ptrace_scope, o intente de nuevo como usuario root. Para más detalles, vea /etc/sysctl.d/10-ptrace.conf root @ kyznecov-System: / inicio / kyznecov root @ kyznecov-System: / home / kyznecov # cat / proc / sys / kernel / yama / ptrace_scope 0 0
Luego intenté usar
gdbpara depurar un programa multiproceso en Eclipse CDT con bifurcación, y me dio el mismo resultado / error:
¿Algunas ideas?

strace /bin/echo test? ¿Eso da el mismo mensaje de error?Respuestas:
Una razón para obtener el error:
attach: ptrace(PTRACE_ATTACH, ...): Operation not permittedes porque el proceso ya se ha unido a con
gdb,straceo similar. Para verificar si este es el caso, ejecute:grep TracerPid /proc/$THE_PID/statusSi no es cero, ese es el pid de un programa existente que ya está ejecutando un seguimiento en ese proceso.
fuente
Como izx ha comentado, esto solo debería poder suceder debido a un error del kernel. Por lo tanto, cualquier persona que pueda producir este problema, incluido, y especialmente el póster original de esta pregunta, sería aconsejable informarlo como un error al leer esa página minuciosa y cuidadosamente, y luego ejecutarla
ubuntu-bug linuxen la máquina afectada . Esto debería informarselinuxen Ubuntu, y no en un núcleo de línea principal (ascendente), a menos que pueda producirlo en un núcleo de línea principal (debería haberyamacargado).El comportamiento esperado en cada versión de Ubuntu que comienza con Ubuntu 10.10 es que el proceso A no puede rastrear un proceso en ejecución B a menos que B sea un hijo directo de A (o A se ejecuta como
root). Esta es una mejora de seguridad, lo que hace que un proceso que ha sido comprometido por un atacante no pueda usar las funciones de depuración proporcionadas por el núcleo para descubrir información de otros procesos. Esto se explica en la sección de alcance de ptrace de la página wiki de la comunidad de Características de seguridad .Este comportamiento restrictivo es el predeterminado, pero se puede cambiar para permitir que un proceso A rastree cualquier proceso B en ejecución que se ejecute con el mismo ID de usuario que el propio proceso A. Es decir, puede configurar su sistema para permitir que cualquiera de sus procesos se depure entre sí. Esto simplifica la conexión de depuradores a procesos que ya se están ejecutando.
La configuración para esto está expuesta por el
/proc/sys/kernel/yama/ptrace_scopesysctl .1denota el comportamiento más restrictivo y0el comportamiento menos restrictivo. La configuración se puede leer con:El comportamiento menos restrictivo (no predeterminado) se puede establecer con:
Y el comportamiento más restrictivo (predeterminado) se puede establecer (o retrasar) con:
No solo el póster original de esta pregunta no pudo adjuntar una
straceinstancia a un proceso actualmente en ejecución conptrace-scopeset to0, sino que el póster original aún no pudo hacerlo cuando se ejecutóstracecomoroot. Es difícil ver cómo esto podría ser algo más que un error: recomiendo informarlo como tal.Al principio, pensé que podía reproducir el problema donde una
ptrace_scopeconfiguración de0se ignora y se trata como si lo fuera1. Pero ya no creo que este sea el caso, ya que he vuelto a hacer lo mismo y no puedo reproducir el problema. He probado esto en:En las tres máquinas, se produce el comportamiento esperado y no puedo reproducir la condición sobre la que pregunta el póster original de esta pregunta. Aquí hay un texto de la Terminal (del sistema en vivo Precise):
straceSeguí produciendo mensajes hasta que lo suspendí, como era de esperar.Concluyo recomendando nuevamente informar esto como un error. Una búsqueda máximamente inclusiva en https://bugs.launchpad.net (que incluye cualquier error de Ubuntu reportado) para el texto
ptrace_scopeproduce solo un puñado de resultados, en los que claramente ninguno es un informe de este error . Informar el error ayudaría a otros, puede dar lugar a soluciones o una solución, y es probablemente la única forma significativa de avanzar en el trabajo de este problema (suponiendo que el problema aún esté ocurriendo).fuente