ptrace: Operation not permitted.

在新版本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

这样下次启动时会生效。

Monthly Archives

Pages

Powered by Movable Type 7.7.2

About this Entry

This page contains a single entry by Cnangel published on June 10, 2015 4:58 PM.

复杂事件处理(CEP)的一些概念 was the previous entry in this blog.

fedora22上ssh 的问题 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.