![PTRACE_TRACEME 错误“操作不允许”](https://linux22.com/image/1193935/PTRACE_TRACEME%20%E9%94%99%E8%AF%AF%E2%80%9C%E6%93%8D%E4%BD%9C%E4%B8%8D%E5%85%81%E8%AE%B8%E2%80%9D.png)
我正在尝试使用 PTRACE_TRACEME 来跟踪子进程:
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) == -1) {
perror("ptrace_traceme");
exit(EXIT_FAILURE);
}
我得到了错误:
ptrace_traceme: Operation not permitted
据我了解,该问题的原因是安全功能。
我尝试将 - 更改kernel.yama.ptrace_scope = 1
为:kernel.yama.ptrace_scope = 0
。
我还检查了 SELinux 是否已禁用。关于 strace,我看到 strace 可以解决这个问题,但我不明白如何解决,有些问题:strace -f ./program_name
。
此外,我以 root 身份运行该程序,但问题仍然没有解决,我开始认为该问题与安全功能无关。
顺便说一句,我正在使用 Ubuntu 22.04。
谢谢你的帮助!