有一个目录/test/test2/
。它的所有者是root
,组是test
,权限是drwxr-xr-x
。我是setfacl -m group:test:w ./
在那个目录下执行的。
test
现在,作为组包含 的用户test
,如果我getfacl ./
在该目录中运行,输出是,
# file: .
# owner: root
# group: test
user::rwx
group::r-x
group:test:-w-
mask::rwx
other::r-x
现在,如果我执行touch test.txt
,我会得到touch: cannot touch 'test.txt': Permission denied
。为什么会这样呢?权限里不是setfacl -m
加了权限chmod
吗?我的意思是,我向该test
组授予了写入权限setfacl
,并且由于该组具有r-x
传统权限(可以使用 进行更改chmod
),这是否有效地授予了rwx
该test
组?
我试过了namei -l /test/test2/
,输出是
f: /test/test2/
drwxr-xr-x root root /
drwxr-xr-x root root test
drwxrwxr-x root test test2
答案1
主要问题在这里:
group:test:-w-
该组test
确实具有写入权限,但没有执行权限,因此您将无法在该目录下创建任何内容。您必须通过以下方式分配权限:
setfacl -m group:test:wx ./
即使你分配UNIX
写权限但没有执行您将无法创建任何内容的权限