如何从我的目录中删除其他用户的子目录?

如何从我的目录中删除其他用户的子目录?

我的主目录中有一个目录,我与 UNIX 组共享该目录,但现在想要删除它。

如果此目录中有其他用户拥有的文件,我可以使用 rm 删除它,因为该目录归我所有。但子目录则不然,它们归其他用户所有。我无法使用 rm -rf 或 rmdir 删除它们。

me@unix:~/blub.git$ ll
total 3
drwxrwxr-x 5 me collab 5 Nov 30 13:32 objects
me@unix:~/blub.git$ cd objects/ && ll
total 8
drwx------ 2 bob collab 3 Nov 30 13:31 bb
drwx------ 2 bob collab 3 Nov 30 13:31 cf
drwx------ 2 bob collab 3 Nov 30 13:32 e6
me@unix:~/blub.git/objects$ rm -rf bb
rm: cannot remove `bb': Permission denied

我该如何摆脱这个共享文件夹?无需 root 或其他用户的帮助?

或者换一种方式提问:我怎样才能真正 rmdir 一个非空目录,而不必递归 rm -rf 其中的所有内容?

编辑:

维基百科:

要删除目录(使用 rm -r),必须递归删除其所有内容。这要求必须对该目录(如果目录不为空)和所有非空子目录(如果有)具有读写和执行权限。需要读取权限才能列出目录的内容以删除它们。这有时会导致一种奇怪的情况,即无法删除非空目录,因为没有写入权限,因此无法删除其内容;但如果同一目录为空,则可以删除它。

这是真的吗?

答案1

获得拥有子目录的用户以允许您写入它们:

chmod -R 777 directoryname

...之后您就可以删除它们了。

或者让具有 root 权限的人帮助您。

答案2

似乎只有通过 root 才能实现,或者使用扩展文件属性(见讨论)这里)。

不过,这有点令人吃惊:)

相关内容