如何找出哪个用户删除了目录?

Rob*_* S. 8 filesystem logging

我的 Ubuntu 服务器上大约有 30 个活跃用户。我个人认识使用服务器的每个人。最近,我和几个朋友在做项目。我们为该项目创建了一个新目录,因为每个人都认识每个人,所以我们没有费心在一堆权限下保护我们的工作。不过我们应该这样做,因为我们今天早上醒来发现有人删除了我们的整个目录。

我们的工作每晚都会备份,所以恢复我们的工作真的没什么大不了的。但是,我们想知道是谁删除了它,以便我们可以面对他们。到目前为止,我们找到罪魁祸首的最好办法是检查每个人的 bash 历史记录,但这是漫长而乏味的,如果目录删除背后存在恶意意图,我们的罪魁祸首可能会修改他们的以掩盖他们的踪迹(或者当然他们可能使用不同的外壳)。

那么,基本上,找出谁删除了目录的最简单快捷的方法是什么?

在此先感谢您的时间。

小智 5

我没有找到您问题的灵丹妙药答案;部分原因在此处详述:https : //superuser.com/questions/178596/checking-user-command-history-in-unix

这个简单的命令可以帮助你追踪发生了什么,在所有用户主目录的所有 shell 历史文件中搜索 rm 和 mv 命令:

find /home -type f -iname .*history -exec grep "rm\|mv" {} \;
Run Code Online (Sandbox Code Playgroud)

你有一个有效的备份来保存你是很好的,但我强烈建议为项目文件夹创建一些组,并将用户帐户添加到这些组中;这将在未来为您节省很多痛苦。

示例:添加组并向其添加项目团队成员

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject
Run Code Online (Sandbox Code Playgroud)

正确递归地设置权限并保证团队的访问权限,无论谁创建/编辑文件

chown -R yourusername:coolproject /path/to/projectdir
find /path/to/projectdir -type d -exec chmod 2775 {} \;
Run Code Online (Sandbox Code Playgroud)

(2 将组所有权设置为“粘性”,这确保任何项目的组所有者保持“coolproject”)

find /path/to/projectdir -type f -exec chmod 664 {} \;
Run Code Online (Sandbox Code Playgroud)

希望能帮到你!乙-)