免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
redhatEnterprise4下的apache怎么訪問別的目錄? CentOS

redhatEnterprise4下的apache怎么訪問別的目錄?

發(fā)表人:wuhuizhong | 發(fā)表時間: 2007年四月19日, 15:15

將DocumentRoot設(shè)在/var/www/html下可以訪問
但是將DocumentRoot設(shè)在其他目錄(如:/webroot)下就出現(xiàn)Forbidden了。
在./etc/httpd/conf/httpd.conf中的相關(guān)部分是這樣的:
Alias /query "/home/query"
<Directory "/home/query">
Options Indexes MultiViews
AllowOverride None

Order allow,deny
Allow from all
</Directory>
但是在瀏覽器中輸入:
http://localhost/query/ 時,出現(xiàn)Forbidden:

Forbidden

You don‘t have permission to access /query on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.0.52 (Red Hat) Server at localhost Port 80


對于剛使用Redhat Enterprise Linux4 或Fedora Core 2以上/CentOS 4的用戶,一定會為Apache經(jīng)常無法正常運(yùn)轉(zhuǎn),報以"Permission denied"等錯誤而大為不解,甚至大為惱火。

其實(shí)這是因?yàn)檫@些系統(tǒng)里激活了SELinux,而用戶的apache配置與SELinux的配置策略有抵觸產(chǎn)生的,只有通過適當(dāng)調(diào)整,使apache的配置和訪問符合策略才能正常使用。

現(xiàn)在下面來分析一下SELinux中有關(guān)httpd(apache)的context定義(略有刪節(jié))

/home/[^/]+/((www)|(web)|(public_html))(/.+)? system_u:object_r:httpd_user_content_t/var/www(/.*)?                  system_u:object_r:httpd_sys_content_t/var/www/cgi-bin(/.*)?          system_u:object_r:httpd_sys_script_exec_t/usr/lib/cgi-bin(/.*)?          system_u:object_r:httpd_sys_script_exec_t/var/www/perl(/.*)?             system_u:object_r:httpd_sys_script_exec_t/var/www/icons(/.*)?            system_u:object_r:httpd_sys_content_t/var/cache/httpd(/.*)?          system_u:object_r:httpd_cache_t/etc/vhosts             --      system_u:object_r:httpd_config_t/usr/sbin/httpd         --      system_u:object_r:httpd_exec_t/usr/sbin/apache(2)?    --      system_u:object_r:httpd_exec_t/usr/sbin/suexec        --      system_u:object_r:httpd_suexec_exec_t/var/log/httpd(/.*)?            system_u:object_r:httpd_log_t/var/log/apache(2)?(/.*)?       system_u:object_r:httpd_log_t/var/log/cgiwrap.log.* --      system_u:object_r:httpd_log_t/var/cache/ssl.*.sem   --      system_u:object_r:httpd_cache_t/var/cache/mod_ssl(/.*)?        system_u:object_r:httpd_cache_t/var/run/apache(2)?.pid.* --   system_u:object_r:httpd_var_run_t/var/lib/httpd(/.*)?            system_u:object_r:httpd_var_lib_t/var/lib/php/session(/.*)?      system_u:object_r:httpd_var_run_t/etc/apache-ssl(2)?(/.*)?       system_u:object_r:httpd_config_t/usr/lib/apache-ssl(/.*)? --    system_u:object_r:httpd_exec_t/usr/sbin/apache-ssl(2)? --     system_u:object_r:httpd_exec_t/var/log/apache-ssl(2)?(/.*)?   system_u:object_r:httpd_log_t/var/run/apache-ssl(2)?.pid.* -- system_u:object_r:httpd_var_run_t/var/run/gcache_port    -s      system_u:object_r:httpd_var_run_t/var/lib/squirrelmail/prefs(/.*)?       system_u:object_r:httpd_squirrelmail_t/usr/bin/htsslpass --   system_u:object_r:httpd_helper_exec_t/usr/share/htdig(/.*)?          system_u:object_r:httpd_sys_content_t/var/lib/htdig(/.*)?            system_u:object_r:httpd_sys_content_t

針對上述的內(nèi)容,可以對如下的幾個常見問題進(jìn)行簡單處理:

1.phpmyadmin在非默認(rèn)/var/www/html目錄下無法運(yùn)轉(zhuǎn)
通常類似的情況都是在配置了虛擬主機(jī)時,訪問/phpmyadmin等提示403訪問拒絕,日志里也提示Permission denied,這是因?yàn)閜hpmyadmin防止的目錄及文件本身屬性不符合context要求。

假設(shè)phpmyadmin放在/web目錄下,那么執(zhí)行:

chcon -R -t httpd_user_content_t /web

則會令/web及其下所有子目錄/文件,包括phpmyadmin文件都獲得了httpd_user_content_t的屬性,如果其傳統(tǒng)的Unix屬性對httpd來說是可讀的話,再重新訪問一下就應(yīng)該可以了。

2./home目錄下的虛擬主機(jī)無法運(yùn)轉(zhuǎn)
與問題1也是類似的,不過根據(jù)上文中context的定義,/home目錄下必須是用戶的$HOME/www或public_html或web目錄才是httpd_user_content_t類型,因此建議將要作為web頁面的內(nèi)容放置在用戶的$HOME/www或web或public_html里,并確保其屬性是httpd_user_content_t,使用如下命令查看:

ls -Z /home/abc/drwxr-xr-x  abc   abc   user_u:object_r:user_home_dir_t    tmpdrwxrwxr-x  abc   abc   user_u:object_r:httpd_user_content         www

如不是,則可通過chcon來逐級目錄及文件更改,直至最后能訪問:

chcon -R -t httpd_user_content_t /home/abc/webchcon -t user_home_dir_t /home/abc

3.CGI程序無法運(yùn)行
如果cgi程序放在/var/www/cgi-bin/里也無法執(zhí)行,遇到403或500錯誤的話,可以檢查cgi程序的屬性,按SELinux contexts文件里定義的,/var/www/cgi-bin/里必須是httpd_sys_script_exec_t 屬性。通過ls -Z查看,如果不是則通過如下命令更改:

chcon -t httpd_sys_script_exec_t /var/www/cgi-bin/*.cgi

如果是虛擬主機(jī)里的cgi,則參考問題2使之能正常使用普通的功能后,再通過chcon設(shè)置cgi文件的context為httpd_sys_script_exec_t即可。

4.Setuid/gid 程序無法運(yùn)行
例如早期的SqWebMail及qmailadmin等,需要setuid/gid的支持,但在SELinux下這將受到嚴(yán)格限制。第一種方法是比較徹底的辦法,能保留系統(tǒng)的安全性,通過:

audit2allow -l -i /var/log/messages

將SELinux拒絕的信息轉(zhuǎn)換為相應(yīng)的policy allow指令,將這些指令添加到SELinux policy 的src里相應(yīng)的配置文件,重新生成policy并加載。但這樣做相對比較麻煩。

另一個方法最簡單,但將使apache得不到保護(hù)。首先確定SELinux 類型是targeted的:

cat /etc/selinux/config|grep SELINUXTYPE

然后,使apache脫離SELinux保護(hù):

setsebool -P httpd_disable_trans 1

然后重啟動apache:

/etc/init.d/httpd restart

這樣所有apache強(qiáng)制的檢查都失效,需要setuid/gid的程序可以正常使用。但這樣帶來了增加漏洞的危險,對于迫切需要運(yùn)行而又很急的情況,本方法是一個最大限度減少系統(tǒng)安全缺失的最后辦法。對于取消SELinux 未必是一個好方法。

 
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CentOS 6.4安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
apache php selinux
Linux平臺下安裝LAMP的曲折歷程
SELinux 入門
Ganglia3.1.7安裝與配置
Ruby on Rails 折騰記(2)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服