各位 Linux 用户大家好。我正在运行 Debian 11。我正在运行具有多个站点的 nginx Web 服务器。每个站点的根目录都由特定用户拥有。我的目标是完全使一个用户的网络文件对另一个用户不可见。user1
拥有/var/www/site1
并user2
拥有/var/www/site2
。可以user1
看到该文件夹site2
存在,但我不希望他能够访问ls
该目录或访问其中的任何文件。我希望其他用户的目录完全不透明。
我首先将目录的权限更改为750
,但 Web 服务器用户www-data
无法访问文件夹的内容。然后我设置了 ACL 以允许www-data
读取访问。
我的(疯狂的)有效步骤:
chown -R user1: .
find . -type f -exec chmod 640 {} +
find . -type d -exec chmod 2750 {} +
setfacl -Rdm u::rwx,g::rx,o::0,u:www-data:rx . # this didn't set up ACLs for individual files, hence the next line
find . -type f -exec setfacl -m u::rw,g::r,o::0,u:www-data:r {} +
问题:是否有更简单的方法来允许网络服务器访问文件夹的内容,同时限制其他用户?或者有比我采取的更简单的步骤吗?
(注意:我尝试将用户添加www-data
到user1
组中,反之亦然。即使该组具有读取权限并且 nginx 正在运行user www-data www-data;
,nginx 仍然无法访问该文件夹的内容...)