web-dev-qa-db-ja.com

403名前は異なるが、コンテンツと権限が同じファイルでは禁止されています

CentOS6.3とApache2.2.15を実行しています。

Apacheのデフォルト設定を使用しています。私が提供しているファイルは

/var/www/html

ここにそれらの2つがあります

[root@gisele html]# ls -l *-production-1.0.6.pdf 
-r--r--r--. 1 root root 171769 Jan  1 21:12 copy-installation-production-1.0.6.pdf
-r--r--r--. 1 root root 171769 Jan  1 20:59 installation-production-1.0.6.pdf

コピーファイルは、

cp installation-production-1.0.6.pdf copy-installation-production-1.0.6.pdf

仮想ホストマッピングを介して、これらのドキュメントにアクセスしています。

copy-installation-production-1.0.6.pdfが役立ちます。 installation-production-1.0.6.pdfは403forbiddenを返します。

唯一の違いは、元のファイルが別のマシンからサーバーにコピーされたことです。

この元のファイルが機能しないのにコピーが機能する理由はありますか?

1
Will

SELinuxを無効にすることは一時的な回避策であり、解決策ではありません。 ダンウォルシュを泣かせたくない ;)

次のいずれかのオプションを試してください。

chcon --reference=/var/www/html/FileThatCanBeServed /var/www/html/FileWithError403

または

chcon -R --reference=/var/www/html /var/www/html/

または

chcon -R -t httpd_sys_content_t /var/www/html/

ls -lZでアクセス可能なファイルのSELinuxコンテキストを常に確認してから、chcon--referenceオプションを使用して、コンテキストを他のファイルにコピーします。

3

ああ、SELinux。この質問と同じ確率: Apacheはいくつかのファイルを提供し、他のファイルは403を取得します

解決策であるSELinuxをオフにします。

http://www.crypt.gen.nz/selinux/disable_selinux.html

CentOSのインストールにプロンプ​​トが表示されるはずです

Is this machine primarily a 
Server (1) / Desktop (2)
1/2...? 1

Would you like to run into bizarre errors later on?
Y/N...? y

Installing SELinux.
2
Will