无附加组用户的文件权限

无附加组用户的文件权限

使用 Rocky Linux 服务器,我使用以下命令创建了一个用户,

sudo adduser foobar

并且用户foobar现在是组的成员foobar。我们可以通过以下内容进行确认。

foobar$ id
uid=1111(foobar) gid=1111(foobar) groups=1111(foobar)

请注意,theuid和 thegid是相同的。

现在,对于 拥有的文件和目录foobar,所有者权限与组权限相同吗?

例子

对于以下目录,

drwxrwx---  1  foobar  foobar  my_dir

奇怪的是,baz不属于组的用户foobarmy_dir.

baz$ id
uid=2222(baz) gid=10000(group1),10001(group2)
baz$ touch my_dir/test  # (?)
baz$ ls my_dir
test

上面的(?)行:当“其他”位关闭时如何baz能够写入?my_dir

答案1

Linux 支持基本文件模式 (rwxrwxrwx),但也支持 ACL 列表。我怀疑您已经设置了一些允许 baz 写入的 ACL 列表。

getfacl my_dir 

可以显示情况。

答案2

unix 中的用户和组权限是分开的,即使巧合地命名为相同和/或具有相同的数字 ID。

adduser 命令不是 100% 标准化的,有些版本会与用户创建一个组,有些则不会,甚至可以告诉那些不这样做的版本,而通常不创建的版本可以指定一个组名来创建与用户。某些版本的 adduser 如果未指定组名,则会将用户分配到“users”组或某些类似的默认组。

此外,groupid 和 userid 只是巧合相同(可能分配给下一个可用的连续 ID),并且这些很容易变得不同步。 (我觉得这很烦人,有时会费心去修复它。)

另一个答案给出了触摸为何有效的合理解释。另一种可能性是“测试”文件在触摸之前已经存在,并且 baz 可能具有对该文件的写访问权限,但没有对该目录的写访问权限,或者由于某种原因,由于该文件已经存在,因此在更新时间时没有打印错误。

相关内容