【发布时间】:2013-03-06 23:06:43
【问题描述】:
当没有组可写位时,为什么目录会显示drwxrwxr-x+?
让我们给一个额外的用户 (john) rwx 一个目录的权限,像这样:
$ mkdir logfiles
$ setfacl -m user:john:rwx logfiles
$ getfacl -ce logfiles
user::rwx
user:john:rwx #effective:rwx
group::r-x #effective:r-x
mask::rwx
other::r-x
这正是我想要的,john 现在拥有与目录所有者等效的访问权限。然而,
$ ls -ld logfiles
drwxrwxr-x+ 2 bob users 4096 Mar 6 22:38 logfiles
$ find -perm +020 -ls
8197 4 drwxrwxr-x 2 bob users 4096 Mar 6 22:38 ./logfiles
没有组有写权限,但是 ls 的输出和 find 的匹配结果会提示其他情况。这直接来自 lstat(2) 系统调用的 st_mode 字段;为什么要设置S_IWGRP 位?
【问题讨论】:
-
创建目录时必须设置组写入位。你的
umask是什么? -
不,umask 是 022,setfacl 之前的 perms 是 755(另请参见示例中的 getfacl 输出 -
group::r-x)。你得到不同的结果吗? -
不,我得到和你一样的结果,使用 xfs 文件系统。我不知道为什么!