SELinux 上下文

SELinux 上下文

我正在配置 Apache\PHP,并注意到 Apache 对 php 共享对象的权限提出抱怨。

Starting httpd: 
httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: 
Cannot load /usr/lib/httpd/modules/libphp5.so into server: 
/usr/lib/httpd/modules/libphp5.so: cannot restore segment prot after reloc: 
Permission denied

我查看了上下文(开始时强制关闭,一切正常)并发现:

# ls --context /usr/lib/httpd/modules/libphp5.so
-rwxr-xr-x root root root:object_r:httpd_modules_t /usr/lib/httpd/modules/libphp5.so

httpd(apache)是否应该能够访问具有上下文的文件httpd_modules_t?我通过应用解决了这个问题

chcon -t textrel_shlib_t '/usr/lib/httpd/modules/libphp5.so'

但我认为 httpd 版本在此版本之前可以运行。有人能给我解释一下吗?

答案1

在 SELinux 下,每个项目都需要有一个上下文。文本重定位可以描述为错误。更改上下文会产生异常,诱使 SELinux 允许它加载,即使它本质上是坏的。更好的文本重定位解释:http://www.akkadia.org/drepper/textrelocs.html。顺便说一句,使用chcon不是永久的:重新标记将重置上下文。使用

# semanage fcontext -a -t textrel_shlib_t /usr/lib/httpd/modules/libphp5.so

使其粘住(见/etc/selinux/targeted/contexts/files/file_contexts.local)。

高血压

相关内容