如何设置权限让文件不能被删除?

如何设置权限让文件不能被删除?

有没有办法设置目录,以便文件和目录

  • 可以读
  • 写给
  • 创建

但并未删除。这是我的照片存档。我想避免意外删除照片。有什么办法吗?

PS/如果有帮助的话,我已经使用 bindfs 设置了存档。两个用户和一个组具有 0750 访问权限。

答案1

您可以设置仅追加属性。从man chattr

A  file  with the `a' attribute set can only be open in append mode for
writing.   Only   the   superuser   or   a   process   possessing   the
CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

对于目录,这意味着可以创建新条目,但不能重命名或删除条目:

$ mkdir foo
$ sudo chattr +a foo
$ touch foo/bar
$ echo a > foo/bar
$ rm foo/bar
rm: cannot remove 'foo/bar': Operation not permitted
$ mv foo/bar foo/baz
mv: cannot move 'foo/bar' to 'foo/baz': Operation not permitted

此属性不会继承,因此您必须将其递归应用于所有子目录:

sudo find . -type d -exec chattr +a {} +

相关内容