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

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...