Debian 如何查看特定登录会话使用的命令?

Debian 如何查看特定登录会话使用的命令?,debian,server-administration,Debian,Server Administration,我有一个debian服务器,我是服务器的管理员。服务器工作不正常,我想看看最后3-4个登录用户执行了哪些命令(由每个登录会话分隔,因为同一用户多次登录)。我有什么办法可以做到这一点吗?我是root用户。这取决于shell,如果您可以尝试bash(作为root用户): 我发现这解释了各种审计工具,包括您想要的,lastcomm。它是acct软件包的一部分,因此: sudo apt-get install acct 输出非常详细,因此您可能希望筛选运行了哪些命令: $ lastcomm --com

我有一个debian服务器,我是服务器的管理员。服务器工作不正常,我想看看最后3-4个登录用户执行了哪些命令(由每个登录会话分隔,因为同一用户多次登录)。我有什么办法可以做到这一点吗?我是root用户。

这取决于shell,如果您可以尝试bash(作为root用户):

我发现这解释了各种审计工具,包括您想要的,
lastcomm
。它是acct软件包的一部分,因此:

sudo apt-get install acct
输出非常详细,因此您可能希望筛选运行了哪些命令:

$ lastcomm --command wajig apt-get
wajig                  tshepang pts/7      0.00 secs Tue Oct  8 22:56
wajig                  tshepang pts/7      0.00 secs Tue Oct  8 22:56
apt-get          S     root     pts/7      0.52 secs Tue Oct  8 22:56
apt-get           F    root     pts/7      0.00 secs Tue Oct  8 22:56
wajig                  tshepang pts/7      0.00 secs Tue Oct  8 22:47
apt-get          S     root     pts/7      0.45 secs Tue Oct  8 22:47
apt-get           F    root     pts/7      0.00 secs Tue Oct  8 22:47

更多信息,例如字段的含义,可在上找到。

这不会按登录会话分开。一种解决方法是为每个用户存储一个主bash历史记录,然后在会话结束时将其和bash历史记录异或,然后按会话id保存。
$ lastcomm --command wajig apt-get
wajig                  tshepang pts/7      0.00 secs Tue Oct  8 22:56
wajig                  tshepang pts/7      0.00 secs Tue Oct  8 22:56
apt-get          S     root     pts/7      0.52 secs Tue Oct  8 22:56
apt-get           F    root     pts/7      0.00 secs Tue Oct  8 22:56
wajig                  tshepang pts/7      0.00 secs Tue Oct  8 22:47
apt-get          S     root     pts/7      0.45 secs Tue Oct  8 22:47
apt-get           F    root     pts/7      0.00 secs Tue Oct  8 22:47