ale*_*ray 115
在 Maverick Meerkat (10.10) 中,Ubuntu 引入了一个补丁来禁止非 root 用户追踪非子进程 - 即。只有作为另一个进程的父进程的进程才能为普通用户 ptrace 它 - 而 root 仍然可以 ptrace 每个进程。因此,为什么您仍然可以使用 gdb 通过 sudo 进行附加。
您可以通过执行以下操作暂时禁用此限制(并恢复到允许您的用户 ptrace (gdb) 任何其他进程的旧行为):
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Run Code Online (Sandbox Code Playgroud)
要永久允许它编辑/etc/sysctl.d/10-ptrace.conf和更改该行:
kernel.yama.ptrace_scope = 1
Run Code Online (Sandbox Code Playgroud)
阅读:
kernel.yama.ptrace_scope = 0
Run Code Online (Sandbox Code Playgroud)
有关为何进行此更改的一些背景信息,请参阅Ubuntu wiki。