让目录可执行是我错了吗


Am I wrong to make directory executable?

我正在使用Zend_Form_Element_file()编写一个文件上传。我在public目录中创建了一个名为users的目录。当我加载文件时,我收到一个错误,说找不到页面。我查看了目录,发现权限是drwxr-xr-x。因此,我将权限更改为drwxrw-rw-,然后再次加载页面。页面加载正确。但是当我上传一个文件时,它会再次产生一个错误。因此,我最终将权限更改为drwxrwxrwx,一切都正常运行。我的问题是,我是否像其他人一样做着平常的事情?我发现让目录可执行很奇怪。有人能解释一下我做得是否正确吗?我只是在学习Zend框架。

如果程序能够"进入"目录,则目录必须是可执行的。进入目录基本上意味着访问该目录下的任何文件/目录。

对文件夹进行"读取"访问可以列出其内容——"写入"访问的作用非常明显。

但是,出于安全原因,您应该检查drwxrwx---770)是否不足;通常,您的用户和Web服务器共享一个公共组。如果是这样的话,就没有必要让任何人进入"世界"。

以与您相同的用户身份运行脚本会更好——通过使用fastcgi,这不会太难,但如果您使用共享主机,您通常没有必要的访问权限。

通常,当您对目录设置权限时,在大多数情况下,权限会通过扩展的ACLS级联到其中的文件。我马上看到的问题是,你们允许世界进入,这是个坏主意。唯一需要对目录拥有权限(最多700)的用户将是您的web服务器。所以我会尽快将安全级别恢复到700。