加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 02:52:51 所属栏目:Linux 来源:网络整理
导读:我们想模仿某个目录foo上系统范围的002 umask的行为,以确保以下结果: 在foo下创建的所有子目录将拥有775个权限 在foo和子目录下创建的所有文件都具有664权限 对于所有用户(包括root用户和所有守护进程)创建的文件/目录,将发生 1和2. 假设我们的分区上有ACL
我们想模仿某个目录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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读