我已经学习 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 的用户将无法删除它。
要删除文件,您必须对其目录具有写入和执行权限。