我们想要模仿某个目录foo上系统范围的002 umask的行为,以确保以下结果:
foo下创build的所有子目录将拥有775个权限 foo和子目录下创build的所有文件将具有664个权限 假设在我们的分区上启用了ACL ,这是我们提出的命令:
setfacl -R -d -m mask:002 foo
…但这不起作用。 在目录中创build的新文件最终看起来像这样:
-RW – WR – +
当我在新文件上运行getfacl时,我得到:
#file:newfile.py
#所有者:根
#group:agroup
用户:: RW-
group :: rwx #effective:-w-
面具:: – W-
其他:: R–
换句话说,在ACL中应用mask:200与应用umask 200 不一样。
那么是否有一种方法来应用每个目录的umask与ACL?
这是ACL的典型工作:-)
$ mkdir /tmp/foo
设置目录本身的权限
$ setfacl -mg::rwx -mo::rx /tmp/foo
设置新创build的目录和文件在该目录中的权限。
$ setfacl -m default:g::rwx -mo::rx /tmp/foo
testing
$ mkdir /tmp/foo/bar $ touch /tmp/foo/bar/baz.py $ ls -ld /tmp/foo/bar /tmp/foo/bar/baz.py drwxrwxr-x+ 2 jdoe jdoe 4096 Mar 10 00:06 /tmp/foo/bar -rw-rw-r-- 1 jdoe jdoe 0 Mar 10 00:06 /tmp/foo/bar/baz.py
mask:rx + group:foo:rwx =>有效权限= rx ) chmod 2755 ),所以你控制哪个组可以写入文件。 setfacl -m group:dev_team:rwx权限 您可以使用每次创build文件时触发的dnotify和脚本。 请参阅: https : //serverfault.com/a/127686/30946