我需要为同一目录中的两个用户授予权限,即
我在 /var/www 中运行 Web 应用程序,我想使 Web 服务器 (nginx) 可写,还想授予 ftp 用户访问权限(/var/www 是 ftp 用户的主目录)。我尝试使用 setfacl,但不起作用?
答案1
- (可选)创建一个组
groupadd groupname
- 将两个用户都添加到组中
for u in user1 user2 ; do usermod -aG groupname $u ; done
- 将该组设置为目录(及其内部文件)的所有者
chown :groupname /var/www ; chmod -R g+rwX /var/www
答案2
acl 应该可以工作。你用对了吗?为现有文件提供递归规则,为新文件提供默认规则?
sudo setfacl -Rm d:g:<user-group>:rwX,g:<user-group>:rwX /var/www
将授予您主组对文件的 rw 权限和对目录的 x 权限(以进入它们)。
-R: recursive
-m: modify existing rule (used to modify the existing permissions)
d:g:...:rwX: this indicates the default part for new files/directories
g:..:rwX: group to use for the acl
rwX: read, write and change directory allowed (rwx will allow execute on files too)
该命令分为两部分:d:g:.....
之前,
和g:....
之后。,
第一部分(d:...
)将为新文件/目录分配默认值,第二部分(g:...
)将修改现有文件。
注意:您还可以对用户(u:)或其他(o:)使用 acl,而不是对组(g:)使用 acl