如何查找用户登录历史?

Axo*_*101 4 security users

因此,我需要知道何时访问我在 ubuntu 中的帐户。是否有任何命令可以显示发生这种情况的确切时间。我需要这个,因为我怀疑有人在远程控制我的电脑,并改变了一些东西。

Win*_*nix 7

last 命令救援

last命令按给定的用户名或所有用户名显示:

$ last rick
rick     tty7         :0               Wed Apr 24 16:25    gone - no logout
rick     tty8         :1               Wed Apr 24 16:24 - down   (00:00)
rick     tty7         :0               Tue Apr 23 20:12 - down   (20:06)
rick     tty7         :0               Tue Apr 23 18:30 - crash  (01:42)
  (...SNIP...)
rick     tty7         :0               Tue Apr  2 16:52 - down   (00:31)
rick     tty7         :0               Tue Apr  2 03:14 - crash  (13:37)
Run Code Online (Sandbox Code Playgroud)

默认情况下,它只显示当月的历史记录。如果您需要回溯超过一个月的历史,您可以/var/log/wtmp.1使用该last命令读取该文件。

last -f wtmp.1 rick将显示用户上个月的登录历史记录rick

$ last -f /var/log/wtmp.1 rick
rick     tty7         :0               Sun Mar 31 16:53    gone - no logout
rick     tty7         :0               Sat Mar 30 19:18 - down   (13:20)
  (...SNIP...)
rick     tty7         :0               Fri Mar  1 20:55 - down   (11:55)

wtmp.1 begins Fri Mar  1 18:23:28 2019
Run Code Online (Sandbox Code Playgroud)

安全性得到加强,普通用户无法写入或删除文件:

$ ll /var/log/wtmp.1
-rw-rw-r-- 1 root utmp 107520 Mar 31 16:53 /var/log/wtmp.1
Run Code Online (Sandbox Code Playgroud)

仅控制台登录

控制台使用将login数据记录到的命令/var/log/lastlog

$ ll /var/log/lastlog
-rw-rw-r-- 1 root utmp 292292 Apr 24 16:22 /var/log/lastlog
Run Code Online (Sandbox Code Playgroud)

lastlog当您查看上面的文件所有者和文件组时,该文件虽然不能那么容易被篡改。“普通”用户只有读取权限。不过,它是一个二进制文件,因此您不能仅凭cat它就可以获得有意义的信息。请改用此命令:

$ lastlog
Username         Port     From             Latest
root                                       **Never logged in**
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
  (...SNIP...)
usbmux                                     **Never logged in**
rick             tty1                      Wed Nov 28 04:19:53 -0700 2018
vnstat                                     **Never logged in**
Run Code Online (Sandbox Code Playgroud)

看到所有可以登录但从来没有也永远不应该登录的不同用户 ID 很有趣。我很惊讶自去年 11 月以来我没有登录控制台/终端。


Tho*_*ard 4

/var/log/auth.log如果远程控制系统的“人”不够聪明,无法清理日志,则会显示这一点。您也许可以使用以下方式查看登录数据:

sudo cat /var/log/auth.log | grep USERNAME
Run Code Online (Sandbox Code Playgroud)

USERNAME你的用户在哪里)。

然而,除此之外,如果此日志中没有任何内容,并且您确实认为自己正在被远程控制,我建议您重新安装系统,并使用不同的密码从头开始,并更好地强化您的系统。