什么chmod和所有者:组设置最适合于Web应用程序?

我们正在CentOS上configuration一个PHP Web应用程序,并将所有文件当前位于/ var / www / html / project /

Apacheconfiguration为以apache:apache运行,并可以访问上面的目录。 现在我们的文件和目录有以下权限:

owner = root group = apache

目录:drwxr-x — root apache

文件:-rw-r —– root apache

这是一个安全的设置? 还是使用一个新的用户,如“项目”是所有文件和目录的所有者更好?

让所有者成为上传/pipe理服务器上的文件的有限用户帐户是最佳实践。 该组通常是php下运行的帐户,所以在这种情况下,Apache将是正确的。 其他权限应该设置为无,因为它们是。 你接近完美。

如果您有多个帐户可能正在修改/编辑文件的情况,您可以创build一个cron脚本,每隔一个小时左右recursion一次,以保持正确的所有权。 同样的技术也可以保证权限的正确性。

此外,您可能需要修改拥有所有权的受限用户帐户的umask以与您的权限scheme内联。

你绝对是安全的。

你的设置将使你不能够在你创build额外的文件夹目录中,如果你需要通过Apache的需求。

我build议你使用下面的权限:

DIRECTORIES: drwxrwx--- root apache FILES: -rw-rw---- root apache 

将您的开发人员添加到apache组,以便可以继续写入这些文件,如果他们通过SSH或FTPlogin。

如果您可以信任用户正在运行它们,则可以拥有自由文件权限。 如果你的代码是固定的,那么你可以让Apache组做更多的权限。

编辑:一般给apache:

 rwx if it needs to create folders rw if it needs to create files r if everything is static 

最后归结到什么只是给你必须的权限。 让他们尽可能保守,并在你开发你的应用程序时打开它们,如果你需要的话。

关于小组的一点小事。 你会看到一些显示这个的例子(这些也是正确的设置):

 DIRECTORIES: drwxrwxrw- root somegroup FILES: -rw-rw-r-- root somegroup 

这些权限是Web应用程序运行所必需的,因为Apache用户不是权限的一部分。 在这种情况下, apache被认为是每个人,所以你需要设置权限,让每个人都可以与您的网站进行交互。 每个人,我不是指世界上的每个人(即匿名)。 我的意思是每个人都是你的服务器上的用户(查看/ etc / passwd获取列表)。