教会你Redhat Enterprise Linux关闭SELinux

系统 Linux
时光流逝,世界日新月异,现在的生活随着科技的发展,发生了巨大的改变,计算机给我们的生活改变更是巨大。下面讲解Redhat Enterprise Linux中如何关闭SELinux?希望你能学会Redhat Enterprise Linux关闭SELinux。

时光流逝,世界日新月异,现在的生活随着科技的发展,发生了巨大的改变,计算机给我们的生活改变更是巨大。下面讲解Redhat Enterprise Linux中如何关闭SELinux?希望你能学会Redhat Enterprise Linux关闭SELinux。

红帽企业 Linux 4包括了一个SELinux 的实现。SELinux 代表了用户,程序以及进程间相互交流的主要变化。在这个发行版本中,SELinux 被默认安装并被开启使用。

在安装的过程中,您可以选择禁用 SELinux,或是设置它只记录警告信息,或是使用它的只在以下守护进程中有效的目标化策略:dhcpd、httpd、mysqld、named、 nscd、ntpd、portmap、postgres、snmpd、squid、syslogd

目标化策略在默认的情况下被启用。

红帽企业 Linux 4 使用在 ext2/ext3 文件系统上的扩展属性来支持 SELinux。这就意味着,当一个文件被写到默认挂载的 ext2/ext3 文件系统中时,一个扩展的属性也会被写入。

当系统有 红帽企业 Linux 4 和 红帽企业 Linux 2.1 双重启动的时候,这就可能会产生一些问题。红帽企业 Linux2.1 内核不支持文件的扩展属性,当它遇到文件的扩展属性时,系统可能会崩溃。

有Linux桌面用户在安装了Redhat Enterprise Linux 4.0后,可能会需要关闭SELinux,正确的方法是:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
By wangzhijun, # 24. January 2006, 04:09:06

SELinux中的Apache和MySQL设定

Fedora Core 3 在安装时默认把SELinux的选项激活了。SELinux比普通的Linux内核提供了更高的安全性,理论上说,在系统因为未知漏洞溢出的时候,普通用户是不可能得到超级用户的权限了。但是,就是因为SELinux安全性的提高,导致我们在使用时,会发生一些我们以前从没遇到的问题。

前两天我在使用Fedora Core 3搭建PHP+MySQL的WebServer时就遇到了一些问题。现在整理一下,如果您也遇到同样的问题,那么,看过这篇文章,就应该可以轻而易举的解决了。

1. Apache - Document root must be a directory 问题。有可能和这个问题并发的问题还有 403 Forbidden 禁止访问的问题。

现象描述:
不使用系统默认的 /var/www/html作为系统的Document Root,自己新建一个目录后修改 /etc/httpd/conf/httpd.conf 中的配置,然后重起Apache的Daemon,发现Apache无法起动,系统报错:
Document root must be a directory
但是,我们设置的DocumentRoot 的确是一个目录,而且apache用户具有可读权限。

另一种情况:新建一个虚拟目录或文件后,无法访问,显示 Forbidden, 403 Error,但文件或目录有可读权限。
问题产生的原因:一开始我想来想去想不出为什么,但是给我感觉是权限的问题,用传统的Linux的思维方式来看,权限绝对没有问题。但是仔细一想,SELinux是不是会有其他安全的设定?

检查 avc message,查看 /var/log/messages文件,发现有类似以下内容的这样一段:

  1. Dec 24 17:54:59 hostname kernel: audit(1098222899.827:0): avc: \  
  2. denied { getattr } for pid=19029 exe=/usr/sbin/httpd \  
  3. path=/var/www/html/about.html dev=dm-0 ino=373900 \  
  4. scontext=root:system_r:httpd_t tcontext=user_ubject_r:user_home_t \  
  5. tclass=file 

嘿嘿,问题找到了,果然是SELinux的新特性搞的鬼。我把目录或文件设成了user_home_t类型,因此apache的进程没有权限,无法访问。针对Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。

解决办法:
很简单,把目录或文件的策略类型改成 httpd_sys_content_t 就可以了
使用root用户
# chcon -t httpd_sys_content_t 目录名或文件名
然后可以用 ls -laZ 命令查看文件目录的策略类型

这样你就成功的完成Redhat Enterprise Linux关闭SELinux了。

【编辑推荐】

  1. 了解Linux入门掌握Linux系统
  2. 剖析Linux内核代码入门方法
  3. 入门学习:Linux定时任务Cron
  4. 阐述Linux驱动程序“Hello world!”
  5. 轻松了解Linux入门命令
责任编辑:小霞 来源: 赛迪
相关推荐

2009-12-15 17:10:39

优化Linux

2009-12-15 14:29:04

2009-12-17 13:40:42

Linux网卡安装

2009-12-10 10:40:21

Linux ldd

2009-11-24 09:53:37

SUSE enterp

2009-12-25 17:35:39

Linux安装real

2009-12-11 10:55:16

Linux启动脚本

2009-12-14 17:13:04

Linux系统修改共享

2009-12-14 16:31:00

Linux安装支付宝

2009-12-09 14:56:54

Linux查看目录文件

2009-12-03 17:50:04

Linux Samba

2009-12-10 10:18:44

Apache安装

2010-01-06 16:32:45

Linux操作系统

2009-12-14 18:04:38

Linux命令创建快照

2009-12-11 09:04:10

Windows搭建Li

2009-12-21 14:44:06

2009-12-02 15:53:53

Linux系统

2009-12-16 11:11:10

硬盘读写速度

2009-12-11 18:00:50

Linux KVM

2009-12-16 16:19:23

Linux网络地址配置
点赞
收藏

51CTO技术栈公众号