代码之家  ›  专栏  ›  技术社区  ›  Hongli

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

  •  2
  • Hongli  · 技术社区  · 13 年前

    My Apache module 启动一个helper子流程,该子流程执行但不受以下操作的限制:

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

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

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

    作为向正确方向迈进的一步,我希望实现对SELinux的最小支持。我正在寻找一种不受任何SELinux约束而在系统范围内不禁用SELinux的方式来启动我的helper子进程。有办法吗?如果有,怎么办?

    1 回复  |  直到 13 年前
        1
  •  2
  •   Ignacio Vazquez-Abrams    13 年前

    好。。。你 能够 编写将域转换为 unconfined_t ,但你会惹恼很多系统管理员。最好给自己写一个继承自 httpd_t 并为访问添加适当的上下文。

    推荐文章