我的主文件夹中有一个目录,其中包含一些构建输出,构建过程已将其 chown 给另一个用户(出于我未知的原因。)我想删除该目录,但不能,因为它不为空,而且我可以'不要删除它包含的文件,因为它们不属于我。当然,我可以递归地 chown 所有文件,但是获取所有隐藏文件是一种痛苦。有直接的方法吗?
答案1
如果您对该目录具有写入权限,则可以删除其中的文件,无论文件的所有者如何。目录上的粘滞位会阻止您删除其他用户的文件,但如果您拥有该目录,您可以取消设置该位...与授予自己写访问权限相同。
然而,一个非空目录由其他用户拥有将是一个更大的问题。
无论如何,如果您可以访问chown
目录中的文件,那么您可能已经是超级用户,并且应该能够访问rm -r
整个树。虽然这在某种程度上是特定于系统的,例如在 Linux 上,您可以具有CAP_CHOWN
允许的功能,chown
但不允许CAP_DAC_OVERRIDE
绕过缺少写访问的功能。