我正在使用Zend_Form_Element_File()写一个文件上传。我在public
目录中创建了一个名为users
的目录。当我加载文件时,我收到一个错误,说没有找到页面。我检查目录,看到权限是drwxr-xr-x
。所以我将权限更改为drwxrw-rw-
并再次加载页面。页面正确加载。但是当我上传一个文件时,它会再次产生一个错误。所以我最终将权限更改为drwxrwxrwx
,并且所有内容都正常运行。 我的问题是,我在做别人正在做的平常做法吗?我发现让一个目录可执行是很奇怪的。 有人可以解释我是否正确吗?我只是学习Zend框架。我的目录是否可执行?
回答
目录必须如果一个程序应该能够“输入”它是可执行的。进入一个目录基本上意味着访问该目录下的任何文件/目录。
通过“读取”访问文件夹,您可以列出其内容 - “写入”访问的功能非常明显。
但是,出于安全原因,您应该检查drwxrwx---
(770
)是否不够;通常你的用户和网络服务器共享一个共同的组。如果是这样的话,就没有必要给予任何“世界”的访问权限。
将您的脚本作为您的同一用户运行会更好 - 通过使用不会太难的fastcgi,但是如果您在共享主机上,则通常没有必要的访问权限来执行此操作。
通常,当您在目录上设置权限时,它会在大多数情况下将其级联到通过扩展ACLS内的文件。我立即看到的问题是,你已经授予世界访问权,这是一个坏主意。唯一需要对目录权限(最多700)的用户将成为您的Web服务器。所以我会把安全性恢复到700。
在大多数系统上,web服务器用户不同于shell/ftp用户。在这种情况下,该文件夹需要'770'甚至'777'才能通过php脚本进行写入,除非它是由web服务器本身创建的(这会使其只读到您的ftp/shell) – ThiefMaster 2012-02-27 15:49:13
仅在阅读时才存在问题访问ftp/shell? – Woot4Moo 2012-02-27 15:50:57
如果您想删除某些内容:是的。除此之外,要在第一个位置创建文件夹,您需要授予父文件夹的组/世界写入权限,然后在从您的PHP脚本创建文件夹后撤消它。不难,但仍然是一团糟。 – ThiefMaster 2012-02-27 15:54:32
- 1. 在整个目录上执行操作时是否可以跳过子目录?
- 2. bash命令检查目录是否可执行
- 3. 是否可以从Jenkins或TFS执行Maven项目?是否有可能无法访问M2回购目录?
- 4. 检测我的应用程序是否正在从用户目录执行
- 5. 帮助使我的根目录不可执行CGI脚本
- 6. Android可绘制目录是否可以包含子目录?
- 7. XNA Project内容目录中的子目录是否有可能?
- 8. 是否可以在TFS中执行“破坏历史记录”?
- 9. 执行时是否可以记录单个mod-rewrite规则?
- 10. 我的项目总是执行关闭
- 11. 检查目录是否可读
- 12. 是否可以移动App_Data目录?
- 13. 确定目录是否可写
- 14. 测试目录是否可浏览
- 15. 是否有可能在用户目录下运行脚本到目录
- 16. 是否可以执行差异链接?
- 17. 是否可以同时执行sendto()recvfrom()?
- 18. 是否可以使用flask执行Includes?
- 19. AspectJ - 是否有可能执行建议?
- 20. 是否可以从UIView XIB执行Segue?
- 21. 是否可以用cscript执行stdout?
- 22. 是否可以远程执行SSIS包?
- 23. 是否可以从applet执行命令?
- 24. 是否可以运行不可执行的npm脚本?
- 25. Django是否在其项目目录中执行所有python文件?
- 26. Windows服务在我的NodeJS项目目录上执行`npm start`
- 27. 应用程序从哪里运行的可执行目录?
- 28. 命令执行目录
- 29. 在C++中执行目录
- 30. Umbraco:活动目录执行
实际上,不可执行目录允许“浏览”目录并列出其内容。一个目录只需要可读就可以遍历它并访问你知道完整路径/文件名的子目录/文件。 – 2012-02-27 15:48:28
我认为webserver是一个无法登录并将权限降低到700或更低的帐户。如果你与网络服务器:网络服务器,它会没事(根据我的经验) – Woot4Moo 2012-02-27 15:49:29
@MarcB:这是错误的。这里是证明:https://paste.aeum.net/show/47/ - 虽然这里面没有访问文件,但访问'.'和'..'与访问文件没有区别。 – ThiefMaster 2012-02-27 15:51:18