如何锁定文件以防止删除但仍使其可写?

the*_*now 35 windows linux filesystems

我想让一个文件被锁定以防止删除但仍然可以写。我该怎么做呢?

有问题的文件是作为 NAS SMB 网络共享上的文件的 Truecrypt 卷,因此我不想意外删除它。

use*_*686 35

对于 Windows:

  1. 拒绝对文件的“删除”权限。
  2. 删除或拒绝对父目录的“删除子项”权限。

对于 Unix(包括 OS X):

  1. 删除父目录的“写入”权限。

请注意,这只会防止文件被删除(删除),但不会对意外截断或用垃圾覆盖做任何事情。如果一个文件是可写的,你可以向它写入任何东西,句号。

此外,文件权限几乎不可能在操作系统之间转换。如果 NAS 运行 Linux,并且您尝试在 Windows 中设置权限,则最终结果可能与您预期的不同。

  • @Richard:AFAIK,删除需要完全禁用该文件的 ACL 继承,这最终使它更复杂。 (2认同)

wol*_*ajr 26

在 Linux 中,您可以创建指向它的硬链接。然后您可以写入并“删除”它,但您只会删除目录中的引用。另一个硬链接仍将指向文件的内容,因此无论如何它都不会被删除。

在 Unix 世界中,您不会“删除”文件。您只需减少指向它的硬链接的数量。当没有其他东西指向它时,该空间被认为是空闲的并且可以使用......

  • 好主意。不知道@Rob 是否可以在他的 NAS 上创建硬链接,但如果他可以,那是一个非常聪明的解决方案。 (2认同)
  • 同样的技术应该适用于 NTFS。 (2认同)

Car*_*rlF 12

备份。即使您可以避免删除,您也无法真正保护可写文件免受损坏。每天备份它。

  • +1。无论使用什么其他腰带和吊带,都要这样做。 (4认同)