如何为从Apache启动的子进程禁用SELinux?

时间:2010-11-14 20:15:39

标签: linux security selinux

My Apache module启动一个帮助程序子进程,例如但不限于以下内容:

  • 它设置一个套接字,以便它可以与Apache通信。
  • 在Apache退出时删除的临时位置读取和写入文件。这些文件用于例如用于存储通过网络接收的大量数据,以防数据不适合RAM。
  • 它产生用户指定的可执行文件。与CGI类似。这些衍生进程中的每一个都作为自己的专用用户运行。

帮助程序子进程以root身份启动,以便它可以管理文件所有权和权限,并可以作为特定用户生成更多进程。

我的模块的某些用户在安装了SELinux的系统上运行,例如基于RedHat的发行版。 SELinux通常会干扰我的模块。到目前为止,我一直在告诉人们在系统范围内禁用SELinux,因为我无法弄清楚如何为我的软件编写适当的策略。文档非常分散,复杂,通常只针对系统管理员,而不是软件开发人员。

作为向正确方向迈出的一步,我想实现对SELinux的最小支持。我正在寻找一种方法来启动我的助手子进程,没有任何SELinux约束,而无需在系统范围内禁用SELinux。有没有办法做到这一点,如果有,怎么做?

1 个答案:

答案 0 :(得分:2)

嗯......你可以编写一个将你的域名转换为unconfined_t的规则,但是你会惹恼很多系统管理员。最好自己写一个继承自httpd_t的新域,并为访问添加适当的上下文。