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