我们正在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获取列表)。