教會(huì)你Redhat Enterprise Linux關(guān)閉SELinux
時(shí)光流逝,世界日新月異,現(xiàn)在的生活隨著科技的發(fā)展,發(fā)生了巨大的改變,計(jì)算機(jī)給我們的生活改變更是巨大。下面講解Redhat Enterprise Linux中如何關(guān)閉SELinux?希望你能學(xué)會(huì)Redhat Enterprise Linux關(guān)閉SELinux。
紅帽企業(yè) Linux 4包括了一個(gè)SELinux 的實(shí)現(xiàn)。SELinux 代表了用戶,程序以及進(jìn)程間相互交流的主要變化。在這個(gè)發(fā)行版本中,SELinux 被默認(rèn)安裝并被開啟使用。
在安裝的過程中,您可以選擇禁用 SELinux,或是設(shè)置它只記錄警告信息,或是使用它的只在以下守護(hù)進(jìn)程中有效的目標(biāo)化策略:dhcpd、httpd、mysqld、named、 nscd、ntpd、portmap、postgres、snmpd、squid、syslogd
目標(biāo)化策略在默認(rèn)的情況下被啟用。
紅帽企業(yè) Linux 4 使用在 ext2/ext3 文件系統(tǒng)上的擴(kuò)展屬性來支持 SELinux。這就意味著,當(dāng)一個(gè)文件被寫到默認(rèn)掛載的 ext2/ext3 文件系統(tǒng)中時(shí),一個(gè)擴(kuò)展的屬性也會(huì)被寫入。
當(dāng)系統(tǒng)有 紅帽企業(yè) Linux 4 和 紅帽企業(yè) Linux 2.1 雙重啟動(dòng)的時(shí)候,這就可能會(huì)產(chǎn)生一些問題。紅帽企業(yè) Linux2.1 內(nèi)核不支持文件的擴(kuò)展屬性,當(dāng)它遇到文件的擴(kuò)展屬性時(shí),系統(tǒng)可能會(huì)崩潰。
有Linux桌面用戶在安裝了Redhat Enterprise Linux 4.0后,可能會(huì)需要關(guān)閉SELinux,正確的方法是:
修改/etc/selinux/config文件中的SELINUX="" 為 disabled ,然后重啟。
By wangzhijun, # 24. January 2006, 04:09:06
SELinux中的Apache和MySQL設(shè)定
Fedora Core 3 在安裝時(shí)默認(rèn)把SELinux的選項(xiàng)激活了。SELinux比普通的Linux內(nèi)核提供了更高的安全性,理論上說,在系統(tǒng)因?yàn)槲粗┒匆绯龅臅r(shí)候,普通用戶是不可能得到超級(jí)用戶的權(quán)限了。但是,就是因?yàn)镾ELinux安全性的提高,導(dǎo)致我們在使用時(shí),會(huì)發(fā)生一些我們以前從沒遇到的問題。
前兩天我在使用Fedora Core 3搭建PHP+MySQL的WebServer時(shí)就遇到了一些問題?,F(xiàn)在整理一下,如果您也遇到同樣的問題,那么,看過這篇文章,就應(yīng)該可以輕而易舉的解決了。
1. Apache - Document root must be a directory 問題。有可能和這個(gè)問題并發(fā)的問題還有 403 Forbidden 禁止訪問的問題。
現(xiàn)象描述:
不使用系統(tǒng)默認(rèn)的 /var/www/html作為系統(tǒng)的Document Root,自己新建一個(gè)目錄后修改 /etc/httpd/conf/httpd.conf 中的配置,然后重起Apache的Daemon,發(fā)現(xiàn)Apache無法起動(dòng),系統(tǒng)報(bào)錯(cuò):
Document root must be a directory
但是,我們設(shè)置的DocumentRoot 的確是一個(gè)目錄,而且apache用戶具有可讀權(quán)限。
另一種情況:新建一個(gè)虛擬目錄或文件后,無法訪問,顯示 Forbidden, 403 Error,但文件或目錄有可讀權(quán)限。
問題產(chǎn)生的原因:一開始我想來想去想不出為什么,但是給我感覺是權(quán)限的問題,用傳統(tǒng)的Linux的思維方式來看,權(quán)限絕對(duì)沒有問題。但是仔細(xì)一想,SELinux是不是會(huì)有其他安全的設(shè)定?
檢查 avc message,查看 /var/log/messages文件,發(fā)現(xiàn)有類似以下內(nèi)容的這樣一段:
- Dec 24 17:54:59 hostname kernel: audit(1098222899.827:0): avc: \
- denied { getattr } for pid=19029 exe=/usr/sbin/httpd \
- path=/var/www/html/about.html dev=dm-0 ino=373900 \
- scontext=root:system_r:httpd_t tcontext=user_ubject_r:user_home_t \
- tclass=file
嘿嘿,問題找到了,果然是SELinux的新特性搞的鬼。我把目錄或文件設(shè)成了user_home_t類型,因此apache的進(jìn)程沒有權(quán)限,無法訪問。針對(duì)Apache的進(jìn)程所使用的SELinux target policy規(guī)定了apache的進(jìn)程只能訪問httpd_sys_content_t類型的目錄或文件。
解決辦法:
很簡單,把目錄或文件的策略類型改成 httpd_sys_content_t 就可以了
使用root用戶
# chcon -t httpd_sys_content_t 目錄名或文件名
然后可以用 ls -laZ 命令查看文件目錄的策略類型
這樣你就成功的完成Redhat Enterprise Linux關(guān)閉SELinux了。
【編輯推薦】