加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何删除Linux中不属于用户的非空目录?

发布时间:2020-12-13 17:58:57 所属栏目:Linux 来源:网络整理
导读:如果目录“foo”由用户A拥有并且包含由root拥有的目录“bar”,则用户A可以使用rmdir将其删除,这是合乎逻辑的,因为“foo”可由用户A写入. 但是,如果目录“bar”包含另一个根拥有的文件,则无法删除该目录,因为必须首先删除其中的文件,因此它将变为空.但“bar”
如果目录“foo”由用户A拥有并且包含由root拥有的目录“bar”,则用户A可以使用rmdir将其删除,这是合乎逻辑的,因为“foo”可由用户A写入.

但是,如果目录“bar”包含另一个根拥有的文件,则无法删除该目录,因为必须首先删除其中的文件,因此它将变为空.但“bar”本身不可写,因此无法删除其中的文件.

有办法解决吗?或者,说服我,否则为什么这是必要的.

解决方法

解释1:目录是文件系统的子空间.它可以通过在其中创建子目录进一步细分为子子空间.目录foo的所有者应该控制子空间内的所有内容:foo / bar,foo / bar / qux等.

解释2:目录是文件系统的子空间.每个目录都附加到其他目录,称为其父目录.目录foo的所有者可以控制子空间内的所有内容;但是,对于子目录foo / bar,foo的所有者可以控制bar是否可以附加到foo而不是内部栏中的内容:只有bar的所有者才能控制它.

支持解释的证据2:正如您所指出的,权限的工作方式.此外,某些Unix文件系统允许将目录附加到多个父级的事实:这称为具有多个硬链接. (对于常规文件,有多个硬链接是常见的,但通常不鼓励或禁止目录,主要是因为创建循环的风险,其中目录是其自己的祖父母N次删除 – 因此您无法从根目录获取它目录,这是一个非常普遍的期望.还有一个问题,如果一个目录有0个硬链接但不是空的怎么办:由于目录是未附加的,你要删除它,但是你怎么处理它内容?)

赞成解释的证据1:在实践中,目录确实有单个父,因此形成树结构.并且你不能访问foo / bar / qux,除??非你对foo和bar都有执行权限(好吧,除了有一些模糊的方法可以访问bar而不被授予访问foo的权限).所以上层确实很重要.

更实际的是,在您的情况下,用户A可以做到

mkdir garbage
mv foo/bar garbage/
rmdir foo

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读