PHP is_readable失败但opendir有效

时间:2012-06-03 12:40:21

标签: php

基本上它在锡上说的是什么:

if(is_dir($dir))
    echo $dir . " is a directory\n";

if(is_readable($dir))
    echo $dir . " is readable\n";

if($this->handle = opendir($dir))
    echo $dir . " opened\n";

返回:

\\ HTPC \ MOVIES是一个目录

\\ HTPC \ MOVIES已开启

哪个很奇怪?我可以遍历目录中的文件,但显然它是不可读的。它并不重要,因为我说我仍然可以读取文件,但我发现它有点奇怪。

有没有人有任何想法?

2 个答案:

答案 0 :(得分:3)

这似乎是一个权限错误。分配给该特定文件夹的是一个家庭组。家庭组实际上并未在网络上使用。删除homegroup并重新添加用户组后,is_readable返回true。仍然很奇怪,opendir如何返回true,但是不可读。你肯定会期望一些不可读的东西在打开时失败。

感谢您的帮助。

答案 1 :(得分:0)

如果要阻止进入目录,请检查安全策略,查找旁路遍历检查或类似内容。

如果绕过该检查,则可以进入acl禁止的目录,但无法读取内容。

如果为整棵树仔细正确地设置和选择了ACL,那么通常不需要触摸它。