ptrace(PTRACE_ATTACH, ...) Operation not permitted问题(转)

https://stackoverflow.com/questions/19215177/how-to-solve-ptrace-operation-not-permitted-when-trying-to-attach-gdb-to-a-pro

https://www.manongdao.com/article-532637.html

https://blog.csdn.net/kan2016/article/details/91417529

 

 

在新版本fedora22用gdb调试程序的时候,发现出现

Attaching to process 21683
ptrace: Operation not permitted.

主要redhat在fedora22之后的版本中,引入了一种叫做ptrace scope的安全机制。这种机制为了防止用户访问当前正在运行的进程的内存和状态,所以在调试程序的过程中导致gdb不能正常工作。这种安全机制可以防止恶意软件附加到其他进程中(如SSH或者GPG),读取程序内存,产生安全问题。比如著名的openssl的"心脏出血"漏洞。

其解决方法有两种,都需要root权限进行操作
(1)临时方法

将/proc/sys/kernel/yama/ptrace_scope虚拟文件的内容设为0。

echo 0 > /proc/sys/kernel/yama/ptrace_scope

重启之后失效。

(2)永久解决

编辑/etc/sysctl.d/10-ptrace.conf这个文件,若没有,创建之。设置(默认是1)

kernel.yama.ptrace_scope = 0

这样下次启动时会生效。

参考:

https://rajeeshknambiar.wordpress.com/2015/07/16/attaching-debugger-and-ptrace_scope/

https://www.kernel.org/doc/Documentation/security/Yama.txt

posted on 2022-09-05 09:31  lh03061238  阅读(3558)  评论(0)    收藏  举报

导航