修复 html 文件夹的权限设置

修复 html 文件夹的权限设置

周末之前,我刚刚在 DigitalOcean 上设置了一个新的 Droplet,并根据自己的需求进行了配置。我一直在关注这个之前提出的问题同一文件夹有多个所有者

本周末,我还在同一个论坛上发现了另一个问答,讨论安全问题以及如何正确保护 www 文件夹以尽量减少任何潜在风险。

  • 我目前所做的就是创建一个新群组网站管理员,我在其中添加了我自己、其他需要访问权限的人以及www-数据用户。

  • setgid在文件夹中应用位sudo chmod g+s /var/www/html,以便新创建的文件和文件夹属于同一组,避免访问问题。

完成所有操作后,我该如何正确保护 /var/www/html 文件夹?

我读到过一些文章说,在理想的世界中,文件夹应该chmod设置为 640 或 2750,并且用户www-data只能具有读取权限,而您可以手动授予其写入权限以上传文件夹等等。

我是否遗漏了某些重要的东西?

我正在尽力学习。

答案1

根据已经完成的工作以及我们的讨论,我认为您需要执行以下步骤。

首先,它不需要www-data成为该组的成员webmasters。所以我认为你需要将它从该组中删除。

分别且递归地设置文件和目录的权限的正确方法是使用find

# Dial with the permissions recursively
sudo find /var/www/ -type f -exec chmod 664 {} +  # set -rw-rw-r-- for all files
sudo find /var/www/ -type d -exec chmod 775 {} +  # set drwxrwxr-x for all directories
sudo find /var/www/ -type d -exec chmod g+s {} +  # set drwxrwsr-x for all directories

# Dial with the ownership 
sudo chown -R root:webmasters /var/www/ # change user :group for the whole tree of /var/www

# Dial with the directory where `www-data` should have write permissions, e.g. for upload
sudo chown www-data /var/www/data 

因此:

  • 的内容/var/www最初归用户root和组所有webmasters

  • 该组的成员webmasters将能够/var/www通过group权限和setgid

  • www-data将具有对文件的读取权限和对目录的读取执行权限(注意对目录的执行权限不同意义通过用户的权限other,Apache2 将能够显示内容...

  • www-data将能够在 中写入内容/var/www/data,因为它是所有者。

相关内容