linux - 为 Web 文件夹分配权限的最佳做法

标签 linux permissions file-permissions chmod chown

我想知道对网站文件和文件夹执行 chown 和 chmod 的最佳、正确和推荐的方法是什么。

我最近开始在 linux 上工作,我一直在站点根目录中进行操作,如下所示:

sudo chown www-data:www-data -R ./
sudo chmod 775 -R ./

我知道这不是最好的方法。有一个 protected 文件夹,浏览器不能访问它,也不应该是可写的,所以我对 protected 文件夹做了以下操作:

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

是否正确?如果有任何可以改进的地方,请告诉我。

最佳答案

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

关于网络服务器不应写入的目录。想想你想做什么。你想撤销从网络服务器和网络服务器组(以及其他所有人)写目录的权利。所以它将转换为 chmod -w theDir。您所做的是告诉系统“我希望 root 更改该目录,每个人和 root 组都可以读取该目录”。我对此深表怀疑。

所以我建议让一个只有最小读取访问权限的网络服务器用户拥有该目录,它应该属于一个允许进行必要的修改的组(即用户组)。网络服务器不属于该组,因为您希望阻止外界进行修改。另一种选择是将所有目录移交给 root 和编辑组,并通过“其他”权限组修改网络服务器可以执行的操作。但是使用什么在很大程度上取决于您的环境。

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

关于linux - 为 Web 文件夹分配权限的最佳做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22141244/

相关文章:

linux - 在 linux 中运行另一种语言的程序

在异步任务期间未授予 Android 存储访问框架持久权限

php检查文件夹的chmod权限

windows - 从命令行设置证书的读取权限

linux - cifs 挂载文件夹的奇怪文件权限

c - 尝试在 C 中创建具有所有权限的文件

php - “rpath”在某些 Linux 系统中不起作用。

linux - 无法通过发出 cd 命令从目录中退出

python - 在 python 中编辑 plist

permissions - Cpanel中的权限被拒绝的cron作业