防止文件删除

时间:2016-09-14 17:54:47

标签: objective-c macos filesystems

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

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

我也试过用fileHandleForUpdatingAtPath打开文件,我以为不可能删除正在使用的文件,但是finder只是删除它没有问题。

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

1 个答案:

答案 0 :(得分:1)

可以锁定文件,因此即使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

尝试删除文件(即使是root用户)也将被拒绝。现在,删除文件的唯一方法是启动进入单用户模式。