通常使用PHP时,当我们想要写入文件/文件夹时,文件/文件夹具有0777的权限。suPHP禁止0777的许可。相反,文件应该具有0644的权限,文件夹具有0755的权限。然而,这个词的措辞总是不同的。
确切的规则是什么?它适用于哪些文件?如果README文件位于嵌套目录中,它的权限是否需要更新,还是只适用于.php文件?
发布于 2012-06-17 09:17:31
这取决于文件/目录的所有权。请记住,suPHP下的PHP将以所有者用户的身份访问PHP脚本,而那些PHP脚本将作为该用户进行操作,这意味着他们所读或写的一切都是作为该用户完成的。因此,PHP脚本只需具有所有者可读性即可运行。
但是,任何不是PHP脚本的东西都会作为Apache进行访问(它们不会被suPHP访问),这意味着用户至少需要读取对文件的访问和对目录的read+execute访问。如果这些文件是由普通用户拥有的,它们将需要具有世界可读性(以及目录的世界可执行文件)。但是如果它们是由web服务器用户拥有的(没有人,www-data,apache,取决于发行版),那么它们只需要是所有者可读的/所有者可执行的。
目录注意事项: Apache (当服务非PHP文件时)将尝试读取路径中的每个目录,搜索.htaccess文件,如果它不能浏览目录,即使文件可读,它也会失败,导致403个错误。
因此,我认为对于大多数网站或web应用程序来说,所有文件(PHP文件和非PHP文件以及目录)都将由单个用户拥有,因此权限如下:
另一个注意事项:即使您为一个PHP脚本设置了0400,它也可以被同一个用户拥有的另一个PHP脚本修改,因为它可以简单地从PHP运行chmod,所以0400并不比0644安全。这仅适用于使用suPHP。
https://serverfault.com/questions/328042
复制相似问题