通常在PHP中,当我们想写入文件/文件夹时,文件/文件夹的权限是0777 。 suPHP禁止0777的许可。 相反,文件应该具有0644的权限,文件夹具有权限0755 。 然而,这总是措辞不同
什么是确切的规则和它适用于什么文件? 如果我有一个嵌套目录中的README文件的权限是否需要更新,还是只适用于.php文件?
这取决于文件/目录的所有权。 请记住,suPHP下的PHP将作为所有者用户访问PHP脚本,这些PHP脚本将以该用户的身份运行,也就是说,他们读取或写入的所有内容都以该用户的身份完成。 所以,PHP脚本只需要拥有可读的运行。
但是,其他任何不是PHP脚本的东西都是作为Apache用户访问的(它们不能被suPHP访问),这意味着用户至less需要读取文件的访问权限并读取和执行对目录的访问。 如果这些文件由普通用户拥有,则它们将需要世界可读(并且对于目录而言是世界可执行的)。 但是,如果它们属于Web服务器用户(nobody,www-data,apache,取决于发行版),则只需要拥有者可读/所有者可执行文件。
目录说明:Apache(当提供非PHP文件时)将尝试读取search.htaccess文件的path中的每个目录,如果它无法浏览目录,即使该文件是可读的。
所以,我认为对于大多数网站或Web应用程序来说,所有文件(PHP文件和非PHP文件和目录)都将由一个用户拥有,所以权限是:
另外需要注意的是:即使你为PHP脚本设置了0400,它也可以被同一用户拥有的另一个PHP脚本修改,因为它可以简单地从PHP运行chmod,所以0400不会比0644更安全。 suPHP。