所有文件或PHP脚本的suPHP权限要求?

通常在PHP中,当我们想写入文件/文件夹时,文件/文件夹的权限0777 。 suPHP禁止0777的许可。 相反,文件应该具有0644的权限,文件夹具有权限0755 。 然而,这总是措辞不同

  • SuPHP将不允许777的chmod,因此我们需要将所有文件设置为644,将目录设置为755
  • 您的脚本和目录现在只能拥有最多755个权限
  • 设置文件权限(s),以允许只有你的读取权限(例如,chmod 600 filename.suphp)。

什么是确切的规则和它适用于什么文件? 如果我有一个嵌套目录中的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(u + r)或0600(u + rw)如果PHP需要修改它们。
  • 非PHP文件:0444(ugo + r)或0644(u + rw,go + r),如果PHP需要修改它们。
  • 目录:0555(ugo + rx)或0755(u + rwx,go + rx)如果PHP需要在其中创build文件。

另外需要注意的是:即使你为PHP脚本设置了0400,它也可以被同一用户拥有的另一个PHP脚本修改,因为它可以简单地从PHP运行chmod,所以0400不会比0644更安全。 suPHP。