依照指示此链接我能够从 Fedora 14 中完全关闭 SELinux。但我想知道如何才能仅为 httpd 守护进程禁用 SELinux?我没有安装 system-config-selinux,并且由于公司防火墙政策,我必须从中搜索 RPMpkgs.org才能安装任何软件包。那么有没有办法解决这个问题呢?
编辑:
Summary:
SELinux is preventing /opt/ibm/cognos/c10/cgi-bin/cognos.cgi "execute" access to
/opt/ibm/cognos/c10/cgi-bin/libIBJStreamsDLL.so.
Detailed Description:
SELinux denied access requested by /opt/ibm/cognos/c10/cgi-bin/cognos.cgi.
/opt/ibm/cognos/c10/cgi-bin/cognos.cgi is mislabeled.
/opt/ibm/cognos/c10/cgi-bin/cognos.cgi default SELinux type is bin_t, but its
current type is bin_t. Changing this file back to the default type, may fix your
problem.
If you believe this is a bug, please file a bug report against this package.
Allowing Access:
You can restore the default system context to this file by executing the
restorecon command. restorecon '/opt/ibm/cognos/c10/cgi-bin/cognos.cgi'.
Fix Command:
/sbin/restorecon '/opt/ibm/cognos/c10/cgi-bin/cognos.cgi'
Additional Information:
Source Context unconfined_u:system_r:httpd_t:s0
Target Context unconfined_u:object_r:usr_t:s0
Target Objects /opt/ibm/cognos/c10/cgi-bin/libIBJStreamsDLL.so [
file ]
Source cognos.cgi
Source Path /opt/ibm/cognos/c10/cgi-bin/cognos.cgi
Port <Unknown>
Host mm2fedora.syd.cog
Source RPM Packages
Target RPM Packages
Policy RPM selinux-policy-3.9.7-3.fc14
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Plugin Name restore_source_context
Host Name mm2fedora.syd.cog
Platform Linux mm2fedora.syd.cog 2.6.35.6-45.fc14.i686 #1
SMP Mon Oct 18 23:56:17 UTC 2010 i686 i686
Alert Count 18
First Seen Fri 15 Apr 2011 02:12:44 PM EST
Last Seen Fri 15 Apr 2011 02:33:11 PM EST
Local ID 409e250f-049f-49c0-89f6-7155e4643868
Line Numbers
Raw Audit Messages
node=mm2fedora.syd.cog type=AVC msg=audit(1302841991.999:22392): avc: denied { execute } for pid=28242 comm="cognos.cgi" path="/opt/ibm/cognos/c10/cgi-bin/libIBJStreamsDLL.so" dev=dm-0 ino=138263 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file
node=mm2fedora.syd.cog type=SYSCALL msg=audit(1302841991.999:22392): arch=40000003 syscall=192 success=no exit=-13 a0=0 a1=1bc08 a2=5 a3=802 items=0 ppid=27923 pid=28242 auid=500 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=1 comm="cognos.cgi" exe="/opt/ibm/cognos/c10/cgi-bin/cognos.cgi" subj=unconfined_u:system_r:httpd_t:s0 key=(null)
根据建议,我多次运行建议的修复命令:/sbin/restorecon '/opt/ibm/cognos/c10/cgi-bin/cognos.cgi'
但不幸的是。通过完全禁用 SELinux,我可以看到这个 Web 应用程序正常运行。我现在正在研究这个主题,比如如何全局启用 SELinux,同时仅为 httpd 禁用它。这肯定不是最好的方法,但由于这只是一个测试用例,所以对我和我的团队来说没问题。
我从 Fedora 13 中得到的提示SELinux 常见问题解答所以我个人相信有一种方法可以使用 system-config-selinux,只是我不知道细节...
答案1
将我之前的评论转换成答案,以满足大众的需求;)
来自您每天学习一些东西的部门:我昨天看到 Dan Walsh 做了一个演讲,他在演讲中解释了在较新版本的 Fedora 和 EL6 中禁用应用程序限制的新方法。您不再设置布尔值来禁用转换(这有时会导致布尔值级联,需要设置布尔值才能使所有内容正常工作),而是将某种类型置于宽容模式。您可以通过运行“semanage permissive -a TYPE”命令(在您的例子中为“semanage permissive -a httpd_t”)来执行此操作。这会让 SELinux 对 httpd_t 保持打开状态,但处于宽容模式。– wzzrd 2011 年 5 月 20 日 8:45
答案2
对于 Fedora 14,就像在 el6 中一样,我认为你可以卸载 http SELinux 模块,方法是运行
semodule -r httpd
这可能会使 httpd 作为initrc_t
或运行unconfined_t
。
如果 F14 不起作用,您可以关闭 SELinux 布尔值(来自 el5 的“旧”方法),如下所示:
setsebool httpd_disable_trans 1
并使用
setsebool -P httpd_disable_trans 1
使之永久化
答案3
我不确定如何关闭单个服务的 SELinux - 我怀疑你不能。
但是您可以使用 runcon 将 apache 进程设置为在不受约束的上下文中运行。
您可以将 runcon 视为 selinux 的 sudoers。它允许您指定在什么上下文中运行进程。
您需要修改 apache 启动脚本,添加类似以下内容:
runcon unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
进入实际调用 apache 的 httpd 启动脚本部分。
在我的 Fedora FC14 主机上我将更改此行:
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
阅读如下内容:
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} runcon unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 $httpd $OPTIONS
PS 我实际上还没有在我的 apache 启动脚本中测试过这一点,所以上面只是猜测我需要把它放在哪里,但我之前肯定使用过 runcon 来允许进程不受约束地运行,所以它会起作用,你只需要找到正确的位置。
答案4
问题并不完全清楚 - 您的意图究竟是什么?
我假设您没有尝试打开 HTTP 端口,因为这将通过防火墙而不是 Selinux 本身来完成。
因此,也许您想允许 httpd 守护进程写入不在通常文档根目录下的某个目录?
如果是这样,那么您需要阅读 Selinux 权限并为您想要访问的目录设置它们。
这里有一个地方可以阅读它:
http://wiki.centos.org/HowTos/SELinux
这很有意义,因为 Fedora 和 Centos 都与 Red Hat 相关,所以这可能会有所帮助。
[编辑]
请尝试这个:
chcon -t textrel_shlib_t ThePathToTheFile
PabloTwo 在这篇文章中建议:
http://www.fedoraforum.org/forum/showthread.php?t=252552
IBM 也在这篇文章中提出了建议:
https://www-304.ibm.com/support/docview.wss?uid=swg21454550