web-dev-qa-db-ja.com

Webサーバー上の特定のファイルにアクセスできません

背景:ApacheがインストールされたCentOS VMを実行しています。Webルートは "/ var/www/html "。2つのmp3を持つサブディレクトリ("/var/www/html/mp3 ")があります。両方のmp3にはまったく同じアクセス許可(644)があります。"/mp3 "ディレクトリには755のアクセス許可があります。曲に関する特定の情報を保持するデータベース。最終的には、検索語を入力して、それらのキーワードを含む曲を返すphpスクリプトを作成し、それらを再生できるようにすることを目的としています。デフォルトの「httpd」を使用しています。 .conf "構成。

問題:1曲しか表示されません。/mp3にアクセスすると、only "MasterOfPuppets.mp3";を持つディレクトリが作成されます。 notは「One.mp3」を表示しません。 「/mp3/MasterOfPuppets.mp3」にアクセスすると、曲を再生できます。 /mp3/One.mp3にアクセスすると、403:AccessForbiddenと表示されます。これはパーミッションの問題であるとほぼ確信していますが、両方のファイルのパーミッションがまったく同じであることを考えると、これがどのようにできるのかまったくわかりません。起こります。

何がこの問題を引き起こしているのかについて、誰かが何か考えを持っていますか?私は過去3時間、壁に頭をぶつけてきました。グーグルは私に失敗しました。

編集:

[root@dugan mp3]# ls -lrtZ *mp3
-rw-r--r--. root root unconfined_u:object_r:home_root_t:s0 One.mp3
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 MasterOfPuppets.mp3

Edit2:

これはSELinuxの問題でした。ここでドキュメントを見つけました: ここ

「/ mp3」フォルダに「chcon-thttpd_sys_content_t One.mp3」と入力し、別の「ls -lrtZ * mp3」を実行したところ、次のようになりました。

-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 One.mp3
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 MasterOfPuppets.mp3

問題が解決し、One.mp3にアクセスできるようになりました。 SELinuxは最高のLinuxです。すべての助けをありがとう。

1
Caldwell

コメントから回答へのコピー:

あなたは「CentOSの奇妙なパーミッションの問題」と言いますが、私は「selinux」だと思います。 /var/log/audit/audit.logをチェックして、One.mp3が言及されているかどうかを確認します。

1