防止文件删除

问题描述:

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

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

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

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

+1

如果你想要防止文件删除,即使是使用管理员密码的人,那也不行!因为管理员权限专门用于这类事情。不要轻易授予管理员权限... –

+0

@ Jean-BaptisteYunès当然,但该应用程序的功能之一是避免意外删除某些特定文件。 OS X默认用户拥有管理员权限和密码,所以它不是我可以或想要更改的东西。问题是,为什么finder可以删除正在使用的文件? – MazarD

+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,将被拒绝。现在,删除文件的唯一方法是启动到单用户模式。

+1

这就是我一直在寻找的东西,你是一个拯救生命的人,谢谢你!对于将来的读者,为了解除标记,在单用户模式下,它将是:chflags noschg testfile – MazarD