Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – ACL和umask之间的冲突大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个目录,可以由几个unix组读取和写入.这是通过使用ACL实现的.我们假设我是这样做的: mkdir /tmp/test setfacl -d -m g:group1:rwx /tmp/test 工作得很好,整个组(和我这样添加的其他组)可以读/写这个目录.但是有一个例外:当有人使用mkdir -p创建子文件夹时,则使用unix权限0755创建此目录,因为默认的umask是022.这会导致该
我有一个目录,可以由几个unix组读取和写入.这是通过使用ACL实现的.我们假设我是这样做的:
mkdir /tmp/test
setfacl -d -m g:group1:rwx /tmp/test

工作得很好,整个组(和我这样添加的其他组)可以读/写这个目录.但是有一个例外:当有人使用mkdir -p创建子文件夹时,则使用unix权限0755创建此目录,因为认的umask是022.这会导致该组的其他用户无法再写入此问题子文件夹,因为ACL现在看起来像这样:

group:group1:rwx            #effective:r-x

出于某种原因,使用“mkdir”(没有-p参数)时不会发生这种情况.一种解决方案是将umask设置为002,但这确实是一件坏事,因为这也会影响在ACL控制的目录之外创建的文件和目录,并且这些文件认情况下不应该是组可写的.

所以我想知道是否有另一种可能性来解决这个问题.能够完全禁用/忽略ACL控制目录的旧的unix样式权限是完美的.或者禁用这个“有效ACL”的东西.那可能吗?或者是否有另一种方法解决由“mkdir -p”等程序引起的不可写目录的问题?最后,我想要一个根据我配置的ACL完全(和递归)可读写的目录,这个目录永远不会改变(仅通过修改ACL本身).

注意:重现问题:

$mkdir /tmp/test
$setfacl -d -m g:group1:rwx /tmp/test
$umask 0022
$mkdir /tmp/test/aa
$mkdir -p /tmp/test/bb
$ls -log /tmp/test
drwxrwxr-x+ 2 4096 Mar  9 23:38  aa
drwxr-xr-x+ 2 4096 Mar  9 23:38  bb

$getfacl /tmp/test/bb | grep ^group:group1
group:group1:rwx                     #effective:r-x

解决方法@H_502_18@
这是gnu mkdir的一个错误http://savannah.gnu.org/bugs/?19546没有办法禁用传统的Unix权限.由于mkdir的工作原理,你可以写一个覆盖mkdir的shell函数.在shell函数中,在args中查找-p并运行一系列非p-using mkdirs.

许多基于Linux的系统现在使用umask 0002和用户私有组,因此不会出现此问题.

大佬总结

以上是大佬教程为你收集整理的linux – ACL和umask之间的冲突全部内容,希望文章能够帮你解决linux – ACL和umask之间的冲突所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: