背景: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です。すべての助けをありがとう。
コメントから回答へのコピー:
あなたは「CentOSの奇妙なパーミッションの問題」と言いますが、私は「selinux」だと思います。 /var/log/audit/audit.logをチェックして、One.mp3が言及されているかどうかを確認します。