无法通过组权限编辑文件

无法通过组权限编辑文件

系统中有两个用户:coderacoderb。他们都属于名为 的组firma。但是,当其中一个用户创建一个文件(在 中/tmp)并将其组所有权更改为firma,并具有rw组权限时,另一个用户仍然无法写入该文件... 以下是终端中的故事:

codera@vbox:/tmp$ touch file_a
codera@vbox:/tmp$ chown codera:firma file_a
codera@vbox:/tmp$ ls -al file_a
-rw-rw-r-- 1 codera firma 0 úno 14 20:12 file_a

因此,如果我理解的话,文件所有者(codera)和组成员firma 应该能够读取/写入该文件。让我们在第二个终端窗口中尝试一下:

pb@vbox:~$ sudo su - coderb # (then password typed)
coderb@vbox:~$ cd /tmp
coderb@vbox:/tmp$ ls -al file_a
-rw-rw-r-- 1 codera firma 0 úno 14 20:12 file_a
coderb@vbox:/tmp$ id # lets check groups one more time
uid=1002(coderb) gid=1002(coderb) groups=1002(coderb),27(sudo),1005(firma),1006(cpp)
coderb@vbox:/tmp$ echo hello > file_a
-bash: file_a: Permission denied

根据man acl,在检查用户(各个进程)是否为所有者之后,如果有效 GID或者任何补充组 ID 与文件组匹配,那么这些rw-应应用权限。

newgrp - firma也试过了... 它成功更改了 gid,但无法访问文件。 也无法重启机器(强制注销/登录所有人的方法),也无法以图形方式登录coderb

有人能解释一下我做错了什么或者我错过了什么吗?

以下是有关操作系统的信息。它在 VirtualBox 中运行:

coderb@vbox:/tmp$ uname --all
Linux vbox 5.8.0-41-generic #46~20.04.1-Ubuntu SMP Mon Jan 18 17:52:23 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

谢谢大家的帮助。

答案1

如果你这样做:

$ ls -lad /tmp
drwxrwxrwt 28 root root 36864 Feb 14 22:26 /tmp

你会发现它有粘着位( t) 设置。这可以防止用户删除或重命名其他用户的文件。最近的 Linux 还通过引入系统fs.protected_regular控制这也可以防止写入此类目录中其他用户的文件。

您可以在未设置粘性的目录中执行您想要执行的操作,或者如果它只是写入,您可以禁用该系统控制(系统范围)。

相关内容