非 root 用户的 www 根文件夹权限

非 root 用户的 www 根文件夹权限

我需要允许非 root 用户访问(读取和写入)Web 服务器的 Web 根文件夹 /var/www/html。我需要一些帮助,了解如何最好地实现这一点。我想避免将权限设置得太宽泛。

目前权限如下:

root@prodwww:/# ls -al /var/www/
total 12
drwxr-xr-x  3 root root     4096 Aug  6 08:52 .
drwxr-xr-x 15 root root     4096 Aug  6 08:52 ..
drwxr-x---  8 root www-data 4096 Aug 18 21:45 html
root@prodwww:/#

并在 /var/www/html 中

root@prodwww:/# ls -al /var/www/html/
total 88
drwxr-x---  8 root www-data  4096 Aug 18 21:45  .
drwxr-xr-x  3 root root      4096 Aug  6 08:52  ..
...
-rw-r-----  1 root www-data   628 Jul  7  2016  _htaccesss
-rw-r--r--  1 root root     10918 Aug 18 21:45  index.html
...
root@prodwww:/#

该用户位于用户组中,但如果我将文件夹的组更改为“用户”,则 www-data(Apache 网络服务器)组将无法访问。

我是不是该

  • 将 www-data 添加到用户组,并将 /var/www/html 的组更改为用户?
  • 将用户的账户添加到 www-data 组?
  • 创建一个新组并将用户帐户和 apache 用户帐户添加到该组并将文件夹组更改为新组?
  • 也许将 Apache(www-data)设置为所有者并将组设置为用户?
  • 做点别的事?

答案1

如果您的文件/文件夹经常更新,最好创建一个新用户,例如:

sudo useradd myuser

然后更改 Apache 用户

sudo nano /etc/apache2/envvars

到:

export APACHE_RUN_USER=myuser
export APACHE_RUN_GROUP=myuser

然后递归地将 chmod 更改为 755 或 744:

sudo chown myuser:myuser /var/www/html
sudo chmod -R 755 /var/www/html

另一个选择是您可以使用 www-data 作为组并将 myuser 添加到该组。

相关内容