linux – 使用ACL设置每个目录的umask

前端之家收集整理的这篇文章主要介绍了linux – 使用ACL设置每个目录的umask前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们想模仿某个目录foo上系统范围的002 umask的行为,以确保以下结果:

>在foo下创建的所有子目录将拥有775个权限
>在foo和子目录下创建的所有文件都具有664权限
对于所有用户(包括root用户和所有守护进程)创建的文件/目录,将发生> 1和2.

假设我们的分区上有ACL is enabled,这是我们提出的命令:

setfacl -R -d -m mask:002 foo

……但这不起作用.在目录中创建的新文件最终看起来像:

-rw–w-r–+

当我在新文件上运行getfacl时,我得到:

# file: newfile.py
# owner: root
# group: agroup
user::rw-
group::rwx #effective:-w-
mask::-w-
other::r–

换句话说,应用具有ACL的掩码:200与应用umask 200不同.

那么有没有办法将每个目录的umask应用于ACL?

解决方法

这是ACL的典型工作:-)

你的榜样

$mkdir /tmp/foo

设置目录本身的权限

$setfacl -m g::rwx -m o::rx  /tmp/foo

为新创建的目录和该目录中的文件设置权限.

$setfacl -m default:g::rwx -m o::rx  /tmp/foo

测试

$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

说明

>掩码的概念与ACL和Unix权限掩码非常不同. ACL的掩码是文件属性…它限制通过ACL授予的最大权限(掩码:r-x group:foo:rwx =>有效权限= r-x)
>警告:修改组的Unix权限,也修改ACL的掩码(按设计!).

建议

>使用setgid(如chmod 2755),以便控制哪个组可以写入文件.>和/或显式授予组setfacl -m group的权限:dev_team:rwx

猜你在找的Linux相关文章