2014-03-03 39 views
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/ 

它是正确的吗?如果有什么可以改进的,请让我知道。

回答

0

再次阅读您的命令。你所说的是“使一切可执行文件”在这些目录下面。 HTML或gif是否可执行?我不这么认为。

关于不应该由Web服务器写入的目录。想想你想做什么。你想撤销从Web服务器和Web服务器组(以及其他人)写入目录的权利。所以它会翻译为chmod -w theDir。你所做的就是告诉系统“我想让root对这个目录进行修改,这个目录应该可以被每个人和根组读取”。我非常怀疑这一点。

所以我建议拥有一个只有最小读访问权限的web服务器用户所拥有的目录,它应该属于一组(用户,即用户),它可以做必要的修改。网络服务器不属于该组,因为您希望外部世界不能进行修改。另一个选择是将所有目录移交给root和编辑组,并通过“others”权限组修改webserver可以执行的操作。但是,重要的用途取决于你的环境。

编辑: 一般来说,“最低权利”政策被认为是一种好的做法:尽可能少地放弃权利来完成工作。这意味着可以读取静态文件,并根据您的环境php文件,读取和执行cgi可执行文件的权限以及读取和执行目录权限。目录的执行权限允许您输入并读取它。网络服务器有史以来应该不能写入文档根目录中的目录。这是一种安全风险,尽管一些大型CMS的开发者似乎并不关心这一点。对于临时文件夹,我会将用户和组设置为nobody:nogroup,并为用户和组设置粘滞位。