4.15. 禁用 ptrace()


ptrace () 系统调用允许一个进程观察和控制另一个进程的执行,并更改其内存和寄存器。此调用主要供开发人员在调试期间使用,例如使用 strace 工具时。当不需要 ptrace () 时,可以禁用它来提高系统安全性。这可以通过启用 deny_ptrace 布尔值(拒绝所有在 unconfined_t 域中运行的进程)来达到这个目的,无法在其他进程中使用 ptrace ()
deny_ptrace 布尔值默认为禁用。要启用它,以 root 用户身份运行 setsebool -P deny_ptrace on 命令:
~]# setsebool -P deny_ptrace on
要验证是否启用了这个布尔值,请使用以下命令:
~]$ getsebool deny_ptrace
deny_ptrace --> on
要禁用此布尔值,请以 root 用户身份运行 setsebool -P deny_ptrace off 命令:
~]# setsebool -P deny_ptrace off
注意
setsebool -P 命令进行永久更改。如果您不想在重新启动后保留更改,则不要使用 -P 选项。
这个布尔值只会影响作为 Red Hat Enterprise Linux 一部分的软件包。因此,第三方软件包仍然可以使用 ptrace () 系统调用。要列出允许使用 ptrace () 的所有域,请输入以下命令。请注意,se setools-console 软件包提供 sesearch 工具,且默认情况下不安装该软件包。
~]# sesearch -A -p ptrace,sys_ptrace -C | grep -v deny_ptrace | cut -d ' ' -f 5
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.