如何捕获用户在linux中执行的命令

时间:2017-03-13 07:34:41

标签: linux shell

我想收集用户执行的所有命令,并且还要root用户linux。我如何每天收集所有命令。

是否可以通过shell脚本收集所有命令?

如果有人知道这个要求,请帮助我。

例如

如果user1执行" ls -l" ,我们需要捕获和root用户执行" df -h",我们需要捕获。我的意思是。所有用户都在bash shell中执行命令,我们需要捕获所有命令。

谢谢

2 个答案:

答案 0 :(得分:2)

使用history是非常糟糕的做法。因为每个人都知道用户可以轻松地清理他们的历史。
对于此类任务,我们使用rootsh

答案 1 :(得分:0)

您可以使用返回执行命令的history命令。

您可以阅读this

  

我们所有的服务目前都在Linux上运行。在Linux中,有一个非常有用的命令可以显示最近使用过的所有最后一个命令。该命令简称为历史记录,但也可以通过查看主文件夹中的.bash_history来访问该命令。默认情况下,history命令将显示您输入的最后五百个命令。

如果您希望一次查看一页的历史记录,可以使用以下命令。现在,您只需使用空格键一次查看一页或使用向下箭头一次查看一行:

history | less

要查看最后十个命令,您可以使用以下命令:

history | tail

要查看最后25个命令,只需使用以下命令:

history 25

如果您想将历史记录的执行保存在文件中,可以使用this

只需将输出重定向到文件:

history > someFile.txt  

或者如果你想追加数据:

history >> someFile.txt

如果你想要stderr也使用它:

history &> someFile.txt  

或者要追加:

history &>> someFile.txt