某个非超级用户拥有但无法删除的目录

某个非超级用户拥有但无法删除的目录

是否可以创建一个其所有者无法删除的目录?假设我有一个bar由 user 拥有的目录foo,并且我想创建一个bar/baz也由 拥有的子目录foo,这样:

  • foobar/baz可以正常创建和删除文件和目录
  • foobar可以正常创建和删除文件
  • foobar可以正常删除大多数目录
  • foo(或任何其他非超级用户)无法删除目录bar/baz

我想这样做的原因是因为我想设置bar/baz为 BTRFS 子卷(将其从快照中排除),如果foo可以删除它并使用 重新创建它mkdir,那么它就不再是子卷了。

答案1

我可以想到至少两种方法来防止所有者删除目录。

  • 如果目录不为空,则无法删除。所以在里面放一些主人无法删除的东西。
    • 他们不拥有的目录
    • 不可变的文件(所有者无关紧要)
  • 在目录上挂载一些东西

在第一种情况下,他们仍然可以重命名目录。但如果上面安装了某些东西(无论如何这都是你想要的),他们就无法对其执行任何操作。现在如果他们可以卸载上面是什么...

答案2

删除文件或目录需要父目录的权限。

因此,如果您有 的目录/dir1/dir2, 的内容dir2无关紧要,并且所有者dir1设置为user1,并且所有者dir2设置为user2,则无论 中是否有文件,user2都将无法删除或重命名。看看吧。没有用户可以删除自己的主目录,因为拥有.dir2dir2/homeroot/home

相关内容