这是使用 freenas 盒子(FreeNAS-9.3-STABLE-201506292130)的。
在基于 Debian 的 Linux 中,文件/目录的默认权限通常为 644/755(现在是 664/775?)。据我了解,这是因为 umask 设置为 022 或 002,它控制着创建新文件的默认权限。然而,在 freenas(windows acl 样式权限)中,默认文件创建只是继承了包含目录的权限。我从 setfacl 手册页中看到
有一个继承标志。但是,我更希望使用默认标志而不是继承标志。有没有办法改变这一点,让创建行为更接近基于 Debian 的系统中所做的行为?也就是说,我希望文件为 644,目录为 755。我不希望新创建的文件只获得 755 个权限,因为目录将这些权限视为权限。
我一直在绞尽脑汁想办法让某件事奏效。我目前正在使用 NFSv4 ACL,当我尝试使用 POSIX ACL 时,我收到“品牌不匹配”错误,因此我一直坚持使用 windows 样式、freenas、freebsd、NFSv4、setfacl/getfacl 命令,但我尝试的任何方法都无法获得上述行为。
$ mkdir test
$ cd test
$ ls -lat
drwxr-xr-x+ 2 user user 2 Aug 1 12:40 .
drwxr-xr-x+ 67 user user 67 Aug 1 12:40 ..
$ touch testfile
$ ls -lat
drwxr-xr-x+ 2 user user 3 Aug 1 12:40 .
-rwxr-xr-x+ 1 user user 0 Aug 1 12:40 testfile
drwxr-xr-x+ 67 user user 67 Aug 1 12:40 ..
# file: .
# owner: user
# group: user
owner@:rwxpDdaARWcCos:fd----:allow
group@:r-x---a-R-c--s:fd----:allow
everyone@:r-x---a-R-c--s:fd----:allow
$ getfacl testfile
# file: testfile
# owner: user
# group: user
owner@:rwxpDdaARWcCos:------:allow
group@:r-x---a-R-c--s:------:allow
everyone@:r-x---a-R-c--s:------:allow
答案1
NFSv4 ACL 中没有“默认 ACL”。但是,您可以精确控制哪些内容可以继承以及由哪些内容继承。特别是,您可以添加由文件继承的 ACE,以及另一组可以由目录继承的 ACE。像这样 - 前三个适用于目录,后三个适用于文件。请注意,目录将继承两者,但“文件”条目将设置“i”(inherit_only)标志,因此它们不会应用于目录本身 - 它们仅供目录中的文件继承。因此,这是父目录上的 ACL:
owner@:rwxp----------:-di----:allow
group@:r-x-----------:-di----:allow
everyone@:r-x-----------:-di----:allow
owner@:rw-p----------:f-i----:allow
group@:r-------------:f-i----:allow
everyone@:r-------------:f-i----:allow
owner@:rwxp--aARWcCos:-------:allow
group@:r-x---a-R-c--s:-------:allow
everyone@:r-x---a-R-c--s:-------:allow
这是文件将要继承的内容('I' 标志表示该条目已被继承;它在 FreeBSD 11-CURRENT 之前并不存在):
owner@:rw-p----------:------I:allow
group@:r-------------:------I:allow
everyone@:r-------------:------I:allow
这是目录将继承的内容('i'标志表示'inherit_only' - ACE 存在,但它不会影响它的实际访问权限;它只会被继承下来):
owner@:rwxp----------:-d----I:allow
group@:r-x-----------:-d----I:allow
everyone@:r-x-----------:-d----I:allow
owner@:rw-p----------:f-i---I:allow
group@:r-------------:f-i---I:allow
everyone@:r-------------:f-i---I:allow