这些是网络服务器的正确权限吗

这些是网络服务器的正确权限吗

我现在明白,在我的网络服务器上将文件夹的权限设置为 777 是非常危险的,因此我想按照建议将文件夹的权限更改为 755,将文件的权限更改为 644这里

我使用上面链接中的以下代码。

# Set group to www-data
sudo chgrp www-data /var/www
# Make it writable for the group
sudo chmod 775 /var/www
# Set GID to www-data for all sub-folders
sudo chmod g+s /var/www
# Add your username to www-data group
sudo usermod -a -G www-data username
# Finally change ownership to username
sudo chown username /var/www/
# Your account shouldn't have any more permission issues

我已使用 filezilla 将权限设置为 777(在我知道它有多不安全之前),原因是我需要上传文件但没有正确的权限。如果我运行此代码,如何确保没有其他用户仍然拥有不安全的权限?

我已将用户名替换为用于登录 filezilla 等(使用 ssh)的用户。

答案1

如果我运行此代码,如何确保没有其他用户仍然拥有不安全的权限?

以文件系统的角度来思考,而不是以具有指定权限的用户的角度来思考。文件夹/文件上设置的权限才是最重要的,其次是属于您分配给文件夹/文件的任何组的用户。因此,您要检查的是哪些用户属于您授予读写执行权限的组。

使用该程序可以轻松检查群组中有哪些成员members

sudo apt-get install members
members www-data

最后一个命令将列出哪些用户属于对您列出的目录具有 rwe 权限的组。

无需安装任何新的软件包,您只需访问grep/etc/group文件,然后读取特定组的输出的最后部分:

grep 'www-data' /etc/group

分配到此组的用户将在输出末尾打印。有关此处为群组文件

答案2

如果您的 Web 服务器以 www-data 形式运行,并且您的用户属于 www-data 组,则足够了:

sudo chown -R username:www-data /var/www/

-R用于递归)和

find /var/www/ -type f -exec chmod 640 {} \; && find /var/www/ -type d -exec chmod 750 {} \;

您不需要为其他用户分配权限,因此我认为 750 是最好的选择。

  • find 将文件更改为 640,将目录更改为 750(其中主要为类型 f 和类型 d)。如果您需要更多权限,则下一步是 660 和 770(组的执行权限)。

相关内容