![是否可以在 Windows 或 Linux 中记录文件系统事件?](https://linux22.com/image/1367777/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Windows%20%E6%88%96%20Linux%20%E4%B8%AD%E8%AE%B0%E5%BD%95%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BA%8B%E4%BB%B6%EF%BC%9F.png)
是否可以在工作站上记录文件系统事件,例如文件和文件夹的复制、修改、删除和创建?我主要使用 Windows,但我想知道这是否也可以在 Linux 上实现。如果没有内置这样的功能,是否有商业产品可以提供此功能?
这就是我希望日志文件包含的内容。
Date Time User Action Type Source Destination
2013-03-12 15:10 Austin Copy File K:\Alabama\Mobile.txt L:\Mobile.txt
2013-04-15 09:12 Bradley Create Folder C:\Chicago
2013-04-23 13:45 Cedric Delete Folder G:\Colorado
2013-05-04 16:03 David Modify File D:\Florida\Miami.txt
它可能看起来不完全像这样,但有些类似。我想知道谁在什么时间、在哪里以及对哪个文件夹或文件做了什么。这是一个看似非常简单的日志,但它非常有用。
更新
上面链接的问题中建议的解决方案是使用组策略在Microsoft 管理控制台启用对象审计,然后事件查看器查看日志。
我在桌面文件夹中启用了我自己用户名的审核,并尝试创建一个文本文件。在创建文件的同一秒内,日志中产生了 39 个新事件!我查看了创建文件时的时钟,然后过滤了日志以查找在那一秒创建的事件。然后我必须逐一查看它们以找到明确说明文件路径和名称的事件。
当我尝试删除文件(永久删除,而不是回收到垃圾箱)时,在同一秒内记录了 210 个事件。谁会想浏览所有事件来找到正确的事件?要找到确切的事件,我必须事先知道某个事件已经发生。这使得整个目的变得毫无用处。我需要知道一些关于事件的信息,即创建的文件的名称或其他信息,然后尝试过滤它。有 28000 个事件存储在安全日志。
因此,我认为这不是解决问题的办法。好吧,无论如何,这不是一个智能方法。使用专用工具会更容易。Windows 中的安全日志记录了所有与安全相关的事件,而这些事件对我来说完全不感兴趣。
答案1
听起来像是一份工作进程监控在 Windows 上,以及通知等待在 Linux 上
例子:
这是一个进程监视器运行情况的屏幕截图
这里是 inotifywait 监视特定子目录的更改:
$ inotifywait -m /tmp/stuffthings/
Setting up watches.
Watches established.
/tmp/stuffthings/ OPEN,ISDIR
/tmp/stuffthings/ CLOSE_NOWRITE,CLOSE,ISDIR
/tmp/stuffthings/ CREATE file.txt
/tmp/stuffthings/ OPEN file.txt
/tmp/stuffthings/ MODIFY file.txt
/tmp/stuffthings/ CLOSE_WRITE,CLOSE file.txt
您可以在 Ubuntu 上安装 inotifywait 和相关程序,如下所示:
sudo apt-get install inotify-tools