在(SVS-V)IPC信号量上configurationSELinux权限

我有一堆使用IPC Semaphores进行交互的程序(semget)。

其中一个程序是一个Apache模块,它运行在(某种)受限制的SELinux环境中(我不太清楚)。

该模块能够正确地与任何常规文件进行交互,当然这些文件的SELinux安全上下文也可以正确设置。

但是 – 当我的(模块)去访问IPC信号量,semget调用失败,EPERM。 当SELinuxclosures时,我不会得到这个错误。

所以 – 显然,我需要做一些SELinux安全上下文或Semaphore上的某些工作。 如果这是一个普通的文件,我可以把它叫做“chcon”。 由于这是一个System-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”对象赋予读/写/ etc权限。

干杯