背景:我正在运行安装了Apache的CentOS虚拟机。 网页的根目录是“/ var / www / html”。 有一个子目录(“/ var / www / html / mp3”),里面有两个mp3文件。 两个MP3都有完全相同的权限(644)。 “/ mp3”目录有755个权限。 我有一个数据库,其中包含歌曲的某些信息,目标是最终能够inputsearch条件,并有一个PHP脚本,它返回的歌曲中包含这些关键字,并允许您播放它们。 我正在使用默认的“httpd.conf”configuration。
问题:我只能看到其中的一首歌。 当/ mp3被访问时,你会得到一个只有 “MasterOfPuppets.mp3”的目录; 它不显示“One.mp3”。 当您访问“/mp3/MasterOfPuppets.mp3”时,它将允许您播放歌曲; 当你访问/mp3/One.mp3时,它显示403:访问被禁止。 我几乎相信,这是一个权限问题,但鉴于这两个文件的权限是完全一样的 ,我绝对不知道如何发生这种情况。
有没有人有任何想法可以导致这个问题? 过去3个小时,我的头靠在墙上。 Google让我失望了
编辑:
[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问题。 我在这里find了文档: 这里
在“/ mp3”文件夹中,我input了“chcon -t httpd_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。