终端命令,用于获取有关终端所有会话中执行的所有命令的时间和用户的信息

终端命令,用于获取有关终端所有会话中执行的所有命令的时间和用户的信息

我想知道哪个用户在终端上执行了哪个命令以及何时执行,即如果任何用户执行“rmdir abc”并删除特定目录,我应该知道他在什么时间执行了哪个命令。并且我不希望它用于单个会话,这些数据应该像我们维护日志一样提供给我,以便我可以在任何时间点进行分析。

history也尝试了该命令,并添加了时间,但它不显示命令的“用户”,而且它是基于会话的,因此~/.bash_history除非退出会话,否则它的数据不会附加到文件中。它也不~/.bash_history显示时间和用户,所以没用。有人能帮帮我吗?我只想看看从系统启动的那一刻起哪个用户在什么时间执行了哪个命令。

答案1

您可以使用以下方式检查用户执行的命令sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history

您还可以查看 AUTH 日志以了解更多信息tail /var/log/auth.log | grep username

尝试这个类似的问题:如何查看 bash 历史记录中的时间戳?

答案2

我猜它存在于所有用户自己的 bash 历史文件中。你只需要获取 .bash 历史文件列表并 cat 它们。

cd /home
find |grep .bash_history

输出:

./gediz/.bash_history

比猫

cat ./gediz/.bash_history

您可以在 for 循环中执行此操作

a=find ...
for i in $a
do
echo $a
cat $i
done

您可以使用 while 循环为 ubuntu 启动创建服务或编辑 rc.local 文件,该循环将每个循环中的所有用户 .bash_history 备份到安全位置,这样即使用户删除了他们的文件,您也能够检查已完成的操作。

相关内容