我尝试在Ubuntu18.04上使用setfacl,但得到了意想不到的结果。在这个简单的例子中,有一个目录: home,2个用户: me,她和一个由这两个用户组成的组。文件系统是在启用acl的情况下挂载的,我用tune2fs进行了检查。
下面是我用来设置权限的脚本的一部分:
#remove all chmod perms
chmod -R u=,g=,o= home
# remove default acl settings
setfacl -R -b -k home
# set default acl
setfacl -dR -m u:me:rwx,g:we:rwx home
# set actual permissions
setfacl -R -m u:me:rwx,g:we:rwx home
ls -al home
d---rwx---+ 9 me we 4096 sep 5 18:36 .
d---rwx---+ 8 me we 4096 sep 4 15:27 energy
d---rws---+ 13 she we 4096 sep 4 15:26 she
# Very strange , the chmod group bits are set!
# setfacl should not touch these bits?
# check acl bits
getfacl home
# getfacl output
# file: home
# owner: me
# group: we
user::---
user:me:rwx
group::---
group:we:rwx
mask::rwx
other::---
default:user::---
default:user:me:rwx
default:group::---
default:group:we:rwx
default:mask::rwx
default:other::---
# as expected
# run as user: me
ls home
# result of: ls home:
Permission denied
# Although the acl bits are ok, permission denied!
# It looks like the system api does not use acl bits问题:
1标准chmod位与acl位有何不同?
2为什么setfacl修改chmod组位?
每当我运行: setfacl -R -m u:someuser:rw目录
设置chmod组位。
3访问被设置为允许访问,但访问仍然被拒绝,为什么?
发布于 2020-09-10 14:29:56
最后,我找到了一个完整的文档来解释细节。我以错误的方式使用setfacl命令:当为欠款用户和欠款组设置acls时,命令如下:
setfacl -R -m u::rwX,g::rwX dir具有显式用户和/或组的语法是当acls用于非欠款主体时。互联网上的大多数例子都是关于这些案例的,并不是很有启发性。这个acl机制显然是建立在一个Posix草案的基础上的,而这个草案从来没有完成过。我认为这种机制并不适合于现有的unix权限系统。
https://askubuntu.com/questions/1273621
复制相似问题