为什么尽管目录上有 default:user:X:rwx ACL,但用户 X 却无法写入目录?

为什么尽管目录上有 default:user:X:rwx ACL,但用户 X 却无法写入目录?

据我了解,这一切看起来都很好:iammedemo拥有目录,但iammmedefault:user:iamme:rwx,所以如果有的话,iamme应该实际上具有与一样的特权iammedemo,并且能够在目录中执行任何操作:

[iamme@iamme-demo:~/IAMME]$ ls -last /tmp/badDir                                                  
total 28
 4 drwxr-xr-x+   2 iammedemo users  4096 Jun 22 00:50 .
24 drwxrwxrwt  220 iamme     users 20480 Jun 22 00:50 ..

[iamme@iamme-demo:~/IAMME]$ getfacl /tmp/badDir                                                   
getfacl: Removing leading '/' from absolute path names
# file: tmp/badDir
# owner: iammedemo
# group: users
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:iamme:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

但是,我肯定遗漏了一些东西:

[iamme@iamme-demo:~/IAMME]$ touch /tmp/badDir
touch: setting times of '/tmp/badDir': Permission denied                                       

[iamme@iamme-demo:~/IAMME]$ touch /tmp/badDir/foo                                                 
touch: cannot touch '/tmp/badDir/foo': Permission denied      

答案1

这是在目录中只提供默认 ACL 的症状,该默认 ACL 为目录所有者等创建的新文件提供 ACL。您必须为目录本身提供 ACL。

所以你需要两者

sudo setfacl -d -m "user:iammedemo:rwX" /tmp/badDir
sudo setfacl    -m "user:iammedemo:rwX" /tmp/badDir # Notice the missing -d

相关内容