setgid 文件删除权限

setgid 文件删除权限

我已经学习 Linux 几天了,现在我处于文件权限与粘性位的阶段,我尝试了以下操作:

[root@localhost sdcdir]# ll
total 24
drwx------. 2 root root 16384 Mar 21 21:38 lost+found
drwxrws--T. 2 root g1    4096 Mar 23 01:22 testdir

g1 是包含 Pavan、Sudheer 和 Surendra 成员的组,Surendra 是组管理员(即 gpasswd -A Surendra)

现在,Pavan 在 testdir 中创建一个文件 p1:

[Pavan@localhost testdir]$ touch f1
[Pavan@localhost testdir]$ ll
total 0
-rw-rw-r--. 1 Pavan g1 0 Mar 23 01:33 f1
[Pavan@localhost testdir]$ 

当我尝试使用 Surendra 帐户删除它时出现错误:

[Surendra@localhost sdcdir]$ cd testdir/
[Surendra@localhost testdir]$ ll
total 0
-rw-rw-r--. 1 Pavan g1 0 Mar 23 01:33 f1
[Surendra@localhost testdir]$ rm f1
rm: cannot remove `f1': Operation not permitted
[Surendra@localhost testdir]$ 

文件 f1 的组所有者为 g1,但只有 Pavan 本人才能删除该文件。当 setgid 时,组被设置为所有者,为什么组中的任何成员都无法删除该文件?

答案1

我认为您尝试删除 sdcdir 中的 f1(它的权限是什么?),而不是 testdir 中的 f1。这可能是您的问题。在这种情况下,f1 归 root 所有,并且只为所有者(root)设置了写入权限,uid 不为 0 的用户将无法删除它。

要删除文件,您必须对其目录具有写入和执行权限。

相关内容