2

我的 Apache 模块启动了一个辅助子进程,它执行例如但不限于以下操作:

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

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

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

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

4

1 回答 1

2

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

于 2010-11-14T20:54:32.960 回答