不知何故,目录中缺少一些文件,我想知道这些文件发生了什么。谁移动/删除了它们?我该如何调查?
我们可以获得目录的历史记录吗?
这些是 AIX 6.1 上的普通用户文件;我不知道正在使用什么文件系统。
答案1
作为一种暴力方法,假设您有权访问所有用户目录并且所有用户都使用 bash 作为默认 shell,您可以搜索他们的历史文件:
grep 'deletedfilename' /home/*/.bash_history
假设它们最近被删除,命令仍然保存在用户的 shell 历史记录中,这将显示谁删除了这些文件。您还可以扩展它来搜索其他 shell 的等效文件。例如:
grep 'deletedfilename' /home/*/.bash_history /home/*/.zsh_history
答案2
如果它们可能被移动,请尝试通过以下方式找到它们locate
- 如果它们不久前被移动,在最后一次运行之前updatedb
(通常是每日),就会找到它们:
locate --existing --basename 'foo.txt'
或使用短选项:
locate -eb 'foo.txt'
如果没有找到它们,您可以使用该find
命令。
find
猜猜在更大的目录树上 使用之前,可以在哪里选择要递归搜索的目录。
请注意有关远程文件系统- 例如,在运行之前find /home -name foo.txt
,检查是否可以自动挂载所有主目录 -可能有数千,以及您是否想要这样。
答案3
除了 terdon 推荐的搜索之外,您还可以按文件夹名称搜索。
因此,如果有人使用通配符删除(或移动)文件,您可能找不到任何历史文件中指定的任何文件名。
例如,如果有人这样做:
$ cd /home/mydir
$ rm *
Or
$ cd somewhere-else
$ mv /home/mydir/* .
您不会在其历史记录中找到任何文件名,但您会发现mydir
。
所以,也尝试一下:
grep 'mydir' /home/*/.bash_history /home/*/.zsh_history
还:我不知道这是否可能,但也许这是由于超出磁盘配额后进行一些自动清理而发生的。这将是一项相当残酷的政策,但我认为这是可能的,而且可能值得研究。