保护文件免受`rm -f`

Hoo*_*ked 6 permissions rm

令我立即懊恼的是,从文件中删除写权限似乎并不能保护它免受rm -f

touch foo
chmod a-w foo
rm -f foo
Run Code Online (Sandbox Code Playgroud)

rm将使用-f标志调用时,如何保护文件不被意外删除?它看起来chattr +i foo可行,但它需要在我的系统上拥有 root 权限(这是有意的吗?),所以我正在寻找非 root 解决方案。

Sha*_*off 11

为了防止文件被添加或删除到目录中,您可以取消该目录的写权限。

  • @Hooked 不,这就是 Unix 的工作方式。如果你想保留目录的写位,但也保留其中的一些文件,你可以在没有写权限的情况下从另一个目录硬链接它们。 (2认同)
  • @enzotib 它不会阻止从混合目录中取消链接,但它确实确保如果文件被意外从那里删除,它不会完全消失.. (2认同)