我将要开发一个 Web 项目,因此www
里面有一个 -folder $HOME
。我希望此文件夹归属于user
组,并归属于 组www-data
。我发出:
mkdir $HOME/www
chmod g+rxs,u+rwx,o-rwx $HOME/www
chown user.www-data $HOME/www
然后ls -alh | grep www
给出:
drwxr-s--- 2 user www-data 4,0K Aug 10 17:33 www
此外,我希望设置默认权限,而不管创建进程的权限如何。所以我这样做:
setfacl -m d:u::rwx,d:g::rx,d:o::- $HOME/www
然后getfacl $HOME/www
给出:
# file: www
# owner: user
# group: www-data
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:other::---
现在我cd
进入新创建的文件夹一个问题:
touch testfile
然后ls -alh | grep testfile
给出:
-rw-r----- 1 user www-data 0 Aug 10 17:44 testfile
如您所见,www-data
由于setgid
位,组被继承了。但是目录中的默认 ACL$HOME/www
未被继承(正如我所料)。$HOME
与相比,具有不同的默认 ACL $HOME/www
- 但我希望手动覆盖子目录默认 ACL 的工作相当简单。
我希望子目录和文件$HOME/www
具有上面给出的默认权限。我这里遗漏了什么?
答案1
默认情况下,文件不具有执行权限。目录具有。尝试创建一个目录,它应该具有预期的权限。文件应该具有预期的默认权限减去执行权限。