2017-03-13 34 views
0

我想收集用户执行的所有命令,以及linux中的root用户。我如何每天收集所有命令。如何捕获用户在linux下执行的命令

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

如果有人知道这个要求,你能帮我吗?

例如

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

感谢

+0

作为日志的命令?,我相信还没有完成的Linux,所以最好找到保存的地方,而不是? –

+0

1.这不可能通过“命令”直接进行。 2。你可能希望收集由用户shell编写的历史文件并评估这些文件,尽管这可能是不完整的。3.这是一个隐私问题,在大多数情况下可能是非法的,从道德的角度来看,它肯定是非常可疑的。 – arkascha

回答

0

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

您可以阅读this

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

如果您希望一次查看历史记录,可以使用下面的命令。现在,你可以简单地使用空格键在同一时间查看一个网页或使用向下箭头,每次查看一条线:

history | less 

要查看刚刚过去的十年命令,可以使用以下命令:

history | tail 

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

history 25 

如果要保存历史的执行在一个文件中,你可以使用this

只是输出重定向到一个文件:

history > someFile.txt 

或者,如果要追加数据:

history >> someFile.txt 

如果你想标准错误也使用此:

history &> someFile.txt 

或这要追加:

history &>> someFile.txt 
+0

@ramachandran,如果这个答案对您有帮助,您应该将其标记为已接受。 – albert

2

使用history是非常不好的做法。因为每个人都知道用户可以轻松清理历史。
对于这样的任务,我们使用rootsh