配置(SVS-V) IPC信号量的SELinux权限



我有一堆程序使用IPC信号量进行交互(semget)。

其中一个程序是Apache模块,它运行在(某种程度上)受限制的SELinux上下文中(我不太了解)。

该模块能够正确地与任何常规文件交互,当然,如果这些文件具有适当设置的SELinux安全上下文。

然而-当我的(模块)去访问IPC信号量,semget调用失败与EPERM。当SELinux被关闭时,我没有得到这个错误。

所以-很明显,我需要做一些事情来设置某种SELinux安全上下文或信号量上的一些东西,以使其工作。如果它是一个普通文件,我可以对它调用"chcon"。因为它是一个系统v IPC信号量,我不能这样做。

我该怎么做才能让这个工作?

使SELinux能够处理您需要的更改的基本步骤是:

  1. 启用允许模式
  2. 捕捉否认
  3. 添加新的策略模块或修改现有的策略模块
  4. 启用强制模式并测试

具体如何做这些步骤取决于你使用的Linux发行版;这里有CentOS, Debian, Gentoo, RedHat和Ubuntu的参考资料。您还可以从NSA找到SELinux信息。我找到的最好的文档来自Gentoo:步骤1,步骤2,步骤3,步骤4。

正如@smassey所指出的,您很可能需要修改一些IPC权限。

SELinux不仅对常规文件有权限设置,还对设备文件和特殊文件有权限设置。

http://seedit.sourceforge.net/doc/access_vectors/access_vectors.html#SECTION00044000000000000000就是你要找的。赋予"sem"对象读/写/等权限。

欢呼

最新更新