周末之前,我刚刚在 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
因此: