如何在Linux中查看其他用户的命令历史记录?


30

如何查看其他用户的命令历史记录?

我是我计算机上的管理员。通过查看我可以看到正常的历史,/home/user_name/.bash_history但是user_name在他们做的时候我看不到它的命令sudo

有没有办法查看一个用户执行的所有命令?


1
窃取他的密码:)或通过社会工程学来窃取。.如果您不是root用户,并且您的帐户设置为无法进入/阅读其他用户的住所/文件的方式,那么您将受到很大限制。
戒指承载者

8
“我是我计算机上的管理员。”

Answers:


23

在基于Debian的操作系统上,这样做 tail /var/log/auth.log | grep username 应该可以为您提供用户的sudo历史记录。我不相信有一种方法可以获取用户正常+ sudo命令的统一命令历史记录。

在基于RHEL的操作系统上,您需要检查/var/log/secure而不是/var/log/auth.log


有什么线索在centos系统上会是什么?我的Centos 7机器没有/var/log/auth.log
-Mitch,

3
试试吧/var/log/secure
Kerin

完美的作品!只需对您的答案提出编辑请求
Mitch

4

只需测试以下内容,它就可以像魅力一样工作。

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history

1
他/他已经知道此命令。最初的问题是:“我可以通过查看/home/user_name/.bash_history来查看正常的历史记录,但在执行sudo时看不到该“ user_name”的命令。”
Michael Thompson

2

如果用户按照发出命令sudo somecommand,该命令将出现在系统日志中。

如果用户产生了外壳,例如sudo -ssudo susudo sh,等等,则该命令出现在根用户,即,在历史/root/.bash_history或类似的。


1
系统日志在哪里?
加勒特2014年

1

# zless /var/log/auth*是你的朋友在这里。它甚至可以打开压缩文件。您可以在:n前进或:p后退之间切换。

或者,您可以使用# journalctl -f -l SYSLOG_FACILITY=10例如。在Arch Linux Wiki上了解有关此内容的更多信息



0

也许此链接对您有价值:http : //www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

但是您应该注意,在bash_history中不留任何痕迹只是用空格etcpp启动命令的问题。历史记录是一个辅助工具,而不是日志记录工具。

来自德国的问候Daniel Leschkowski


-1

该逻辑适用于许多其他目标。
以及如何从/ home /文件系统读取每个用户的.sh_history?如果有成千上万个呢?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

是脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.