如何为目录和文件设置不同的Linux默认ACL

Modified on: Mon, 26 Aug 2019 02:20:02 +0800

我在目录上定义了一些ACL:

# owner: root
# group: root
user::rwx
group::r--
mask::r-x
other::r--
default:user::r--
default:group::r--
default:mask::r-x
default:other::r--

我希望在该文件夹中创建的任何新文件都是u:apache:r--以及任何新目录:uache:r-x。如何使用ACL指定该意图?

我已经尝试了-dm u:apache:rX,与rx相比,它似乎没有做任何不同

overt htdocs # getfacl .
# file: .
# owner: root
# group: root
user::rwx
user:apache:r--
group::r--
mask::r-x
other::r--
default:user::r--
default:user:apache:r--
default:group::r--
default:mask::r--
default:other::r--

overt htdocs # setfacl -dm u:apache:rx .
overt htdocs # touch blah.txt
overt htdocs # getfacl blah.txt
# file: blah.txt
# owner: root
# group: root
user::r--
user:apache:r-x                 #effective:r--
group::r--
mask::r--
other::r--

overt htdocs # rm blah.txt
overt htdocs # setfacl -dm u:apache:rX .
overt htdocs # touch blah.txt
overt htdocs # getfacl blah.txt
# file: blah.txt
# owner: root
# group: root
user::r--
user:apache:r-x                 #effective:r--
group::r--
mask::r--
other::r--

大写X权限似乎仅对设置当前权限有用,而不是用于设置默认权限:

overt htdocs # setfacl -x u:apache blah.txt
overt htdocs # getfacl blah.txt
# file: blah.txt
# owner: root
# group: root
user::r--
group::r--
mask::r--
other::r--

overt htdocs # setfacl -m u:apache:rX blah.txt
overt htdocs # getfacl blah.txt
# file: blah.txt
# owner: root
# group: root
user::r--
user:apache:r--
group::r--
mask::r--
other::r--
作者:,joshperry

最佳答案

关于ACL和面具的帖子真的帮助我了解如何做我想要的,以及为什么。

我理解的缺失部分是,在创建文件时,内核使用默认权限集0666和新目录0777.因此默认情况下目录将设置执行(遍历)位。

ACL掩码基本上是在目录/文件/用户级别设置umask的方法。

作者:joshperry

相关问答

添加新评论