我有一堆使用IPC信号量进行交互的程序(semget)。
其中一个程序是Apache模块,它运行在(某种)受限的SELinux上下文中(我对此不太了解)。
该模块能够正确地与任何常规文件交互,当然,前提是这些文件设置了适当的SELinux安全上下文。
然而,当我的(Module)去访问IPC信号量时,semget调用失败并返回EPERM。当SELinux关闭时,我不会得到这个错误。
显然,我需要做一些事情来设置某种SELinux安全上下文,或者在信号量上设置一些东西,这样才能正常工作。如果它是一个普通的文件,我可以在它上面调用"chcon“。因为它是System-V IPC信号量,所以我不能这样做。
我能做些什么来让它工作??
发布于 2011-10-07 21:37:52
让SELinux处理所需更改的基本步骤如下:
启用permissive mode
具体如何执行这些步骤取决于您所使用的Linux发行版;这里有CentOS、Debian、Gentoo、RedHat和Ubuntu的参考。您还可以从NSA中查找SELinux信息。我找到的最好的文档来自Gentoo:step 1,step 2,step 3,step 4。
作为@smassey noted,您很可能需要修改一些IPC permission。
发布于 2011-10-07 17:26:20
SELinux不仅有普通文件的权限设置,也有设备和特殊文件的权限设置。
http://seedit.sourceforge.net/doc/access_vectors/access_vectors.html#SECTION00044000000000000000就是你要找的东西。赋予"sem“对象读/写/等权限。
干杯
https://stackoverflow.com/questions/7572974
复制相似问题