web-dev-qa-db-ja.com

httpdはhttpd_sys_content_tを設定した後でもファイルにアクセスできません

私は現在SELinuxを学んでいます。 RedHatのSELinuxドキュメント の指示に従っていました。次のコマンドを入力した後、本当に成功しました。

mkdir /mywebsite  
//add something to /mywebsite/index.html  
semanage fcontext -a -t httpd_sys_content_t "/mywebsite(/.*)?"  
restorecon -R -v /mywebsite //everythins worked well by then

しかし、私は後でもっと何かをしました:

chcon -R -t httpd_sys_content_t /mywebsite  //I can't access index.html now, as expected

restorecon -R -v /mywebsite //Still can't access index.html!!  

semanage fcontext -a -t httpd_sys_content_t "/mywebsite(/.*)?"  
restorecon -R -v /mywebsite  //didn't work, either

ls -dZ /mywebsite // unconfined_u:object_r:httpd_sys_content_t:s0

Firefoxのエラーメッセージは次のとおりです。

Forbidden

You don't have permission to access /index.html on this server. 

何か不足していますか?それともバグですか?私のOSは、Apache 2.4.7を搭載したFedora 20です。

6
duleshi

私の間違い。これはSELinuxのせいではありません。 Red Hatのチュートリアルは完了していません。また、以下をhttpd構成ファイルに追加する必要があります(Apache httpd 2.4の場合):

<Directory "/mywebsite">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
3
duleshi

ディレクトリ/var/www/htmlから設定を複製できます:

chcon -R --reference=/var/www/html /path/to/your/project  
4
Janderson Silva