分配网页文件夹权限的最佳实践

3
我希望了解在网站文件和文件夹上执行chown和chmod的最佳、正确和推荐方式。
我最近开始在Linux上工作,一直在像以下这样在网站根目录中进行操作:
sudo chown www-data:www-data -R ./
sudo chmod 775 -R ./

我知道这不是最好的方法。有一个受保护的文件夹,浏览器不能访问,也不能写入,因此我对受保护的文件夹做了以下处理:

sudo chown root:root -R protected/
sudo chmod 755 -R protected/

这正确吗?如果有需要改进的地方,请告诉我。

1个回答

0

请再次阅读您的命令。您的意思是在这些目录下“使所有文件可执行”。HTML或gif文件可以被执行吗?我认为不行。

关于一个Web服务器不应该具有写入权限的目录。想一想你想做什么。您想从Web服务器和Web服务器组(以及其他人)中撤销对目录的写入权限。因此,它将转换为chmod -w theDir。但您所做的是告诉系统“我希望root对那个目录进行更改,该目录应该可供每个人和root组阅读”。我非常怀疑这一点。

因此,我建议将目录归属于Web服务器用户,只具有最小的读取访问权限,它应该属于允许进行必要修改的用户组。Web服务器不属于该组,因为您希望防止外部世界进行修改。另一个选择是将所有目录移交给root和编辑器组,并通过“其他”权限组修改Web服务器的操作权限。但是,如何使用取决于您的环境。

编辑: 通常,“最小权限”策略被认为是良好的实践:尽可能少地授予权限以完成工作。这意味着可以读取静态文件,并且根据您的环境,可以读取php文件、cgi可执行文件的读取和执行权限以及目录的读取和执行权限。目录的执行权限允许您进入并读取它。文档根目录中的任何目录都不应该由Web服务器永远可写。即使一些大型CMS的开发人员似乎不太关心这个问题,这也是一种安全风险。对于临时文件夹,我会将用户和组设置为nobody:nogroup,并为用户和组设置粘性位。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接