我刚刚开始担任系统管理员并遇到了第一个问题。
我想要做的是设置目录的权限,以便目录中的所有子目录和文件以及新创建的文件只能由我允许的组和用户使用。
我已经走到这一步了:
setfacl -Rdm m::rwx mydir
setfacl -Rdm o::--- mydir
setfacl -Rdm g:everybody:rwx
我还在未使用 -d 标志的情况下设置了所有这些权限。据我了解,默认掩码决定了权限的上限。
我预计,当一个属于该组的用户所有人创建新文件:
touch mydir/newfile
该文件的权限是读写。然而,它们rw-我发现,如果存在默认 ACL(确实存在),则分配给新对象的权限位对应于模式参数和那些在默认 ACL。
我认为模式参数干扰了我的权限,但我还没有找到改变这种情况的方法。我试过:
chmod a+rwx mydir
(以及一些修改)但它不起作用。
所以我想问题是:如何更改默认模式参数,以便它们不影响使用 ACL 设置的权限。
答案1
你的touch
命令不是设置可执行位。这意味着,无论您为目录分配了什么默认 ACL,受影响的文件都将不是已设置可执行位。
这并不依赖于 ACL:例如,考虑一下umask
对基本 POSIX 权限进行操作的命令。虽然您可以设置umask
为不过滤任何权限(实际上,默认情况下 root 已启用所有权限),touch
但不是创建一个可执行文件。