我们的实验室中有一台 Linux 服务器,由多位开发人员共享。服务器凭据(非 root)为所有人所知,他们使用 SSH 登录。现在,当我今天登录时,我才意识到有人删除了我正在处理的文件夹。它一直在那里,直到昨天 EOD,但现在不见了。我怎么知道是谁删除了我的文件夹?
**编辑:- ** 我刚刚发现这个last
命令greps
提供了用户登录的 IP 列表,这是很有用的信息,但它并不能完全解决我的目的。我只想知道是谁删除了我的文件夹。我只想知道是否有人愿意这样做,因为以前也发生过这种情况,每次都要恢复所有内容,这真是令人沮丧。
答案1
你不能。如果你是机器的管理员,你可以启用审计功能,但这对过去的事件没有帮助。
获取备份。并与管理员沟通,建立良好的权限系统和/或审计。
答案2
我不确定这是否 100% 可行,但我会尝试从文件系统日志甚至文件系统的整个文件夹中恢复删除时间(特别是如果文件系统是 ext4)。然后您可以将删除时间与“last”的输出进行比较。不幸的是,我对如何做到这一点只有一个非常基本的想法,所以请自己检查可能性。好的开始可能是:
http://spin.atomicobject.com/2012/06/29/restoring-deleted-files-from-the-ext3-journal/ http://www.linuxjournal.com/content/hack-and-forensics-ext4
也许可以从日志中看到文件删除的确切时间。
然而,无论这种取证是否可行,整个情况对我来说似乎很奇怪。我建议如下:
- 保持冷静。恢复文件或删除时间戳似乎相当困难,在认领某人之前,您应该 100% 确定。也许有人是无意中这样做的,那么就没有必要对此反应过度。
- 尝试与你的同事交谈。为什么需要进行严格的法医鉴定而不是直接和其他人交谈呢?
- 有备份. 总是要有备份。
- 对不同的用户使用不同的凭证。正如您现在所看到的,协作使用一个帐户并不是一个好的做法。只需创建更多帐户即可。如果有许多服务器 - 使用 LDAP 来管理它们。
- 修复文件系统权限。由于不同的用户将拥有不同的帐户,因此您可以管理文件权限,这样就不会再出现这种情况了。
答案3
没有完全万无一失的方法来解决这个问题,因为有很多种机制可以删除文件,并且没有所有文件操作的日志。
假设他从 shell 中删除了该文件夹,您可以 grep 浏览历史文件 (/home/*/.*history),看看是否能找到任何内容。这将包含通过 shell 发出的命令列表。