web-dev-qa-db-ja.com

Fedora 16: "アクセスが拒否されました:ファイルのアクセス許可がサーバーアクセスを拒否しました"

私は新しいFedora 16インストールで作業していて、Apacheを起動して実行しようとしています。私はLinuxに、CentOSにもある程度精通していますが、FedoraやSELinux(それが何であれ)についてはほとんど経験がありません。

最初は、Apacheをインストールした後、サンプルのWebページすら見ることができませんでした。私はいくつかの検索を行い、最終的にiptablesを編集してその問題を修正しました。

Sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Sudo iptables-save

私は先に進んで、権限が正しく設定されていることを確認して、Webルートにいくつかのファイルをドロップし始めました。

$ ls -Rlhp /var/www/html/
/var/www/html/:
total 8.0K
drwxr-xr-x. 2 Apache root 4.0K Apr 20 22:47 files/

/var/www/html/files:
total 25M
-rw-r--r--. 1 Apache users 25M Apr 20 22:47 SRR022918.errors.tar.gz

しかし、対応するURL(my.server.edu/files/SRR022918.errors.tar.gz)、403 Permission deniedエラーが発生しました。 Apacheエラーログを確認したところ、このメッセージが見つかりました。

[Fri Apr 20 23:09:55 2012] [error] [client xxx.xxx.xx.xx] (13)Permission denied: file permissions deny server access: /var/www/html/files/SRR022918.errors.tar.gz

ファイルとディレクトリのアクセス許可を777に設定してみましたが、問題は解決しませんでした。これは本当に怪しいので、これはSELinuxと関係があると思います。 SELinuxの経験がないので、順調に進んでいますか?もしそうなら、これをどのように修正しますか?

7
Daniel Standage

メモリが機能する場合は、おそらくchcon -R -h -t httpd_sys_content_t /var/www/htmlを実行する必要があります

これにより、コンテンツディレクトリがApacheの適切なコンテキストに再帰的に設定されます。

14
Magellan

このファイル権限の問題は、ご想像のとおり、SELinuxが原因です。かなり複雑ですが、CentOSの優れた人々が あなたを動かすためのかなり良いwiki をまとめました。つまり、SELinuxを無効にする(まったく悪い考え)、許可モードに設定する(少し悪い考えを減らす)、またはSELinuxで作業することができます。 wikiはかなり簡潔な方法で詳細を説明しているので、DRYにして、wikiを読んでもらいます。

ファイルを/ var/www/htmlにコピーし、そのフォルダーのデフォルトコンテキストを復元することで、次のように修正しました。

restorecon -Rv /var/www/html
7
Lucas