防止文件删除

Prevent file deletion

我正在寻找一种防止文件在 MacOSX 中被删除的简单方法。我知道总有办法删除它,比如用另一个操作系统加载 HD,但我正在寻找一些简单的方法让没有技术知识的人有点困难。

我尝试将包含文件夹的权限更改为只读,并将所有者更改为 "nobody",但用户可以使用管理员密码使用 finder 轻松删除它。

我也尝试过使用 fileHandleForUpdatingAtPath 打开文件,我认为无法删除正在使用的文件,但 finder 可以毫无问题地删除它。

有没有办法防止文件在 MacOSX 中被删除?

可以锁定文件,这样即使root也不能删除它们。

使用 chflags 命令,可以使用各种选项:

arch    "archived flag"
opaque  "opaque flag"
nodump  "nodump flag"
sappnd  "system append-only flag"
schg    "system immutable flag"
uappnd  "user append-only flag"
uchg    "user immutable flag"

假设我们有一个名为 testFile 的文件,请执行以下操作

chflags schg testfile

尝试删除文件,即使是根用户,也会被拒绝。现在,删除文件的唯一方法是启动到单用户模式。