RHEL4中与SELinux相关的命令如下所示:
SELinux图形管理工具:system-config-securitylevel
chcon
restorecon
load_policy
checkpolicy
setfiles
avcstat
sesearch
sestatus
getenforce
getsebool
setenforce
setsebool
togglesebool
目录:
/selinux
/selinux/booleans
/etc/selinux
/etc/selinux/targeted
/etc/selinux/targeted/contexts
/etc/selinux/targeted/policy
文件:
/etc/sysconfig/selinux(链接到;/etc/selinux/config)
/etc/selinux/targeted/booleans
/etc/selinux/targeted/contexts/files/file_contexts
与 selinux 有关的两条命令 restorecon -R -v 和 chcon -t texrel_shlib_t ,还有一个配置文件 /etc/selinux/targeted/contexts/files/file_contexts,用于为某些需要 execmod 属性的 po 文件来设置安全标记。他们默认用的是 enforce, targted
在默认的 SELinux 安全配置中,httpd 被 targeted 策略所控制。它通过设定允许或拒绝 httpd 对系统的访问来增加系统的安全性和万维网服务器的稳定性。但是,这可能导致以前可以正常工作的配置(例如使用 PHP)不再可以正常工作,您应该了解 SELinux 的工作原理来保证您的系统即安全又可以正常运行。
例如,通过设置一个布尔值来为 httpd 设置权限, httpd 就可以读取在 ~/public_html/ 中被标记为 httpd_sys_content_t 的项。Apache 守护进程不能访问那些没有被 SELinux 设定可以被 httpd 访问的项(文件,应用程序,设备和其它进程)。
通过设置只允许 Apache 访问它所需要的功能,系统可以避免被破坏或错误的 httpd 守护进程配置。
因为需要使用标准的 Linux 和 SELinux 的文件和目录权限,管理员和用户需要了解重新标记的文件。重新标记包括以下命令(一个是重新标记目录的内容,一个是重新标记一个单一的文件):
使用ls -Z命令可以查看目录和文件的security context属性。
ls -Z
ps -Z
id -Z
这三个命令的-Z参数专为SELinux而增加的,可以看到文件,进程和用户的SELinux属性情况。命令:chcon 改变文件或者目录的SELinux属性。
还有一些SELinux操作专门的命令,如setenforce来设置SELinux开启/关闭.
具体的请参考SELinux相关文档.
#ls -Z public_html
#chcon -R -h -t httpd_sys_content_t public_html
#ls -Z index.html
#chcon -t httpd_sys_content_t public_html/index.html
#ls -Z public_html/index.html
如果一个文件或目录没有被标记为在 Apache 允许类型的列表中的类型时,将会产生一个 403 Forbidden 错误。
您可以使用 system-config-securitylevel 来设置布尔值或是禁用控制 Apache (或任何守护进程)的目标策略。在 SELinux 页中的 Modify SELinux Policy 中,您可以为 Apache 修改布尔值。如果需要,您可以选择 Disable SELinux protection for httpd daemon 来禁止 unconfined_t 到特定守护进程的转换,如 httpd_t。禁用这个转换将关闭 SELinux 对这个守护进程的管理,使它只具有标准的 Linux 安全性。
更多关于 Apache 和 SELinux 策略的信息, 请参阅http://www.redhat.com/docs 中的 Red Hat SELinux Policy Guide。
在默认的情况下,httpd 守护进程使用 C locale,而不是使用被设置的系统的 locale。这可以通过修改 /etc/sysconfig/httpd 文件中的 HTTPD_LANG 变量来改变。