logging所有文件的Linux文件系统,甚至被删除的文件系统

我有一个要求,让用户访问他们可能放置一些文件的NFS共享,然后删除文件。 假设他们是stream氓,可能试图真正删除这些文件(我不确定如果shred通过NFS工作,但是什么是相同的)。 我们不希望他们意识到NFS共享已被更改(这是他们的主目录)。

是的…奇怪的要求我知道!

在NFS上是否有一个文件系统或设置,所以看起来就像用户正在删除文件,而他们真正被存储? 我被告知这是一个修改文件系统,但我找不到许多参考。

我知道你可以使用恢复程序在ext3和类似文件上“取消删除”,但是我们希望比这更强大的东西,理想的情况是以一些易于访问的forms存储所有文件副本。

使用CentOS 5.8。 用户不能删除他们的文件,因为他们是“stream氓”,不再信任(这是复杂的,这就是我所知道的)。

版本控制文件系统

NILFS自动和连续快照,所以它可以跟踪修改和删除的文件。 版本2(又名NILFS2)也有一个整洁的垃圾回收机制,以避免文件系统充满太多的快照! 我会明确地看看这个解决scheme!

维基百科上的search也返回了ext3cow ,它在块级别进行写入复制,并可以保留文件版本的跟踪。

这两种解决scheme现在都已经存在了一段时间,但是我不能说在企业环境中成熟,因为我没有经验。

另一种方法

人们可以简单地使用增量备份系统,这是一种将NFS共享保存在不同位置的rsync,但也可以恢复被删除的文件。

这样的解决scheme不是防弹的,需要额外的存储,因此可能不符合您的要求或预算。 另外,这个解决scheme会定期运行,因此在备份会话之间创build和删除的每个文件都将被彻底丢失。

如果这些限制仍然符合法案,那么看看rdiff-backup 。 这是一个命令行工具,将会正确,轻松地完成这项工作。

也许,两种方法都可以certificate更安全。

我不知道NFS,但你肯定可以使用CIFS来做到这一点。 有一个名为vfs_recycle samba模块。 当它打开的时候,每个被删除的文件实际上移动到你在configuration中指出的目录。 您也可以包含veto files指令,并说明回收目录,以便用户看不到回收站。

在Linux上总是有ZFS选项,并定期拍摄文件系统输出。 ZFS的Linux变体的自动快照服务的一个例子。 ZFS快照默认显示在(不可见) .zfs/snapshot/ tree下的文件系统共享的子目录中,对用户透明。

如果使用ext *文件系统,则可以使用属性来获取所需的行为。 你可以使用不可变的标志(如果你启用了它,那么这个文件就不能执行动作了)或'u'标志(当文件被删除时,它的内容被保存,这样用户就可以请求删除它)。

http://docs.petervg.nl/index.php/component/content/article/41-linux/59-ext3-file-attributes