setfacl -m 不会在传统文件权限的基础上添加权限吗?

setfacl -m 不会在传统文件权限的基础上添加权限吗?

有一个目录/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),这是否有效地授予了rwxtest组?

我试过了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 权限但没有执行您将无法创建任何内容的权限

相关内容