我试图在strace下运行这个简单的程序,它不会让我。 你们能想到为什么会这样吗?
[jeffjose@skipper ~]$ strace ls strace: ptrace(PTRACE_TRACEME, ...): Permission denied
我在Fedora 17b上,我的shell是tcsh 。 如果需要,我可以提供更多信息。
更新:克里斯托弗指出,这有一个错误报告。 他还build议我调整selinux或禁用它。 这是唯一的方法吗? 这是什么意思? 如果我这样做,我在做什么? 有人能详细解答吗? 我会select这个作为我的查询的正确答案。 谢谢!
更新2:我正在使用gdb进行一些debugging,并再次提出。 对我来说幸运的是,在那里清楚地提到了需要做的事情。
warning: the SELinux boolean 'deny_ptrace' is enabled, you can disable this process attach protection by: (gdb) shell sudo setsebool deny_ptrace=0
我能够毫无困难地做好准备。 但是,这是什么意思? 我刚刚做了什么?
SELINUX(安全增强的Linux)用于强化服务器,在桌面上运行它有点多。
但是,如果你想了解selinux,一个好方法是在桌面机器上以宽容模式运行它。
我使用了一个名为setroubleshooter的工具,当selinux的策略被违反时,它会向我发送桌面通知。 如果操作是合法的,我可以“生成一个本地策略模块来允许这个访问”
比如今天在我的机器上gnome3违反了selinux,但没有被拒绝,因为我处于宽容模式。 selinuxtroubleshooter提供了这个build议:
You should report this as a bug. You can generate a local policy module to allow this access. Allow this access for now by executing: # grep gnome-session-c /var/log/audit/audit.log | audit2allow -M mypol # semodule -i mypol.pp
这两个命令允许你检查和设置SELINUX
$ getenforce Permissive $ setenforce usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
玩的开心。