我想使文件被锁定以防止删除,但仍可写。我该怎么做呢?
有问题的文件是Truecrypt卷,它是NAS SMB网络共享上的文件,因此,我不想意外删除它。
我想使文件被锁定以防止删除,但仍可写。我该怎么做呢?
有问题的文件是Truecrypt卷,它是NAS SMB网络共享上的文件,因此,我不想意外删除它。
Answers:
对于Windows:
对于Unix(包括OS X):
请注意,这只会阻止文件被删除(删除),但不会对意外截断或垃圾覆盖产生任何影响。如果文件可写,则可以在该文件中写入任何内容。
同样,文件权限几乎不可能在操作系统之间转换。如果NAS运行Linux,并且您尝试在Windows中设置权限,则最终结果可能与您期望的结果不同。
在Linux中,您可以创建一个硬链接。然后,您可以写入它并“删除”它,但是您将仅删除目录中的引用。另一个硬链接仍将指向文件的内容,因此无论如何都不会删除它。
在Unix世界中,您不会“删除”文件。您只需减少硬链接的数量即可。如果没有其他指向,则该空间被认为是可用的并且可以使用...
备份。即使可以删除,您也无法真正保护可写文件不受损坏。每天备份。
除了前面提到的答案外,我还将考虑查看selinux。在这里,您可以定义非常精细的限制。
在像btrfs这样的Cow文件系统上,您可以通过使用子卷+快照或带有--reflink = cp的cp来实现此目的,总会有效地产生所需数量的文件,这些文件将消耗与一个+一些开销相同的空间(但是没有大量的副本或快照,尤其是结合了很小的文件大小,这应该不会引起注意),直到它们被修改为止,在这种情况下,只有已更改的部分被分开存储,其余部分仍被共享。然后分别设置每个权限(要实现所需的功能,只需定期制作快照或使用只读权限进行复制即可(如果是快照并且如果是文件,则可以选择将其只读或全部挂载),可以使用chattr + i(用户可以即使您偏执,也不要在一个副本上写入或修改文件(即使具有写权限)。