strace用于克隆子进程的EPERM

时间:2013-05-07 14:32:21

标签: strace

我试图在一些二进制文件中遇到但遇到奇怪的问题

strace -f ./ioncube_encoder53

它跟踪主进程正常,但在尝试跟踪子进程时,它失败并带有

clone(Process 22790 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xff4918) = 22790
[pid 22789] waitpid(22790, Process 22789 suspended
 <unfinished ...>
[pid 22790] ptrace(PTRACE_TRACEME, 0, 0, 0) = -1 EPERM (Operation not permitted)

下面是我的环境的详细信息:

[root@alpaca-dev ioncube]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

[root@alpaca-dev ioncube]# getenforce
Disabled

[root@alpaca-dev ioncube]# cat /etc/redhat-release
CentOS release 5.9 (Final)

[root@alpaca-dev ioncube]# uname -a
Linux alpaca-dev.lunarbreeze.com 2.6.18-348.4.1.el5xen #1 SMP Tue Apr 16 17:29:06 EDT 2013 i686 i686 i386 GNU/Linux

我关闭了selinux,在'root'用户下跟踪,跟踪后代进程, 我没有发现任何提及过程可以禁止跟踪

任何想法?

1 个答案:

答案 0 :(得分:0)

从我在这里看到:https://blog.packagecloud.io/eng/2015/11/15/strace-cheat-sheet/,如果“不允许strace附加到系统上的进程”,就会发生这种情况。也许它不会从父级继承一些标志并将它们设置为某些系统默认值(疯狂猜测)。

您可以按照本文开头的步骤禁用该行为,并允许跟踪所有已处理的内容。

希望它有所帮助。