如果您要管理多用户系统,则通常需要知道登录机器的人员,时间和来源。last是一个命令行实用程序,用于显示有关系统用户的最近登录会话的信息。 当您需要跟踪用户活动或调查可能的安全漏洞时,此功能非常有用。

本文介绍了如何审核使用last命令登录系统的人员。

如何使用last命令

last命令的语法如下:

last [OPTIONS] [USER] [<TTY>...]

每次用户登录系统时,该会话的记录都会写入/var/log/wtmp文件。 最后读取文件wtmp文件,并打印有关用户登录和注销的信息。 从最近的记录开始,记录以相反的时间顺序打印。

在没有任何选项或参数的情况下调用last时,输出看起来像这样:

[linuxmi@linux:~/www.linuxmi.com]$ last
linuxmi  :0            :0               Sun Feb 23 19:59   still logged in
reboot   system boot   5.3.0-41-generic Sun Feb 23 19:58   still running
linuxmi  :0            :0               Sun Feb 23 19:57 - 19:58  (00:00)
reboot   system boot   5.3.0-41-generic Sun Feb 23 19:57 - 19:58  (00:01)
linuxmi  :0            :0               Sun Feb 23 19:56 - 19:57  (00:00)
reboot   system boot   5.3.0-41-generic Sun Feb 23 19:55 - 19:57  (00:01)
linuxmi  :0            :0               Sun Feb 23 19:52 - 19:55  (00:02)
reboot   system boot   5.3.0-41-generic Sun Feb 23 19:51 - 19:55  (00:03)
...

输出的每一行从左到右包含以下几列:

  • 用户名。 当系统重新引导或关闭时,最后显示特殊用户的重新引导和关闭。
  • 进行会话的tty。 :0通常表示用户正在登录桌面环境。
  • 用户登录的IP地址或主机名。
  • 会话的开始和结束时间。
  • 会话时间。 如果会话仍处于活动状态或用户未注销,则last将显示有关该会话的信息,而不是持续时间。

要将输出限制为特定用户或tty,请将用户名或tty作为参数传递给最后一个命令:

[linuxmi@linux:~/www.linuxmi.com]$ last linuxmi$last pts/0
linuxmi   :0           :0               Sun Feb 23 19:59   still logged in
linuxmi   :0           :0               Sun Feb 23 19:57 - 19:58  (00:00)
linuxmi   :0           :0               Sun Feb 23 19:56 - 19:57  (00:00)
linuxmi   :0           :0               Sun Feb 23 19:52 - 19:55  (00:02)
linuxmi   :0           :0               Sat Feb 22 14:22 - 16:26  (02:04)
linuxmi   :0           :0               Thu Feb 20 21:04 - 06:02 (1+08:58)
linuxmi   :0           :0               Wed Feb 19 21:41 - 21:57  (00:15)
linuxmi   :1           :1               Mon Feb 17 20:02 - 20:45  (00:42)
linuxmi   :0           :0               Sun Feb 16 18:59 - down   (01:22)
linuxmi   :0           :0               Sun Feb 16 18:51 - 18:57  (00:06)

wtmp begins Sat Feb 10 23:08:11 2020

 

您还可以指定多个用户名和ttys作为参数:

[linuxmi@linux:~/www.linuxmi.com]$ last linuxidc root pts/0

last命令选项

last接受几个选项,这些选项使您可以限制,格式化和过滤输出。 在本节中,我们将介绍最常见的内容。

要指定要在命令行上打印的行数,请在数字前加上最后一个连字符。 例如,要仅打印最后十个登录会话,请输入:

[linuxmi@linux:~/www.linuxmi.com]$ last -3
linuxmi  :0            :0               Sun Feb 23 19:59   still logged in
reboot   system boot   5.3.0-41-generic Sun Feb 23 19:58   still running
linuxmi  :0            :0               Sun Feb 23 19:57 - 19:58  (00:00)

wtmp begins Sat Feb 15 23:08:11 2020

使用-p(–present)选项,您可以找出谁在特定日期登录了系统。

[linuxmi@linux:~/www.linuxmi.com]$ last -p 2020-02-22
linuxmi  :0            :0               Thu Feb 20 21:04 - 06:02 (1+08:58)
reboot   system boot   5.3.0-41-generic Thu Feb 20 21:01 - 06:02 (1+09:01)
reboot   system boot   5.3.0-41-generic Thu Feb 20 14:50 - 06:02 (1+15:12)
wtmp begins Sat Feb 15 23:08:11 2020

使用 -s (–since) 和 -t (–until)选项告诉最后显示自指定时间以来或直到指定时间为止的行。 这两个选项通常一起使用,以定义您要检索信息的时间间隔。 例如,要显示2月13日至2月18日的登录记录,可以运行:

[linuxmi@linux:~/www.linuxmi.com]$ last -s 2020-02-20 -u 2020-02-23

可以使用以下格式指定传递给-p,-s和-t选项的时间:

YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm     (seconds will be set to 00)
YYYY-MM-DD           (time will be set to 00:00:00)
hh:mm:ss             (date will be set to today)
hh:mm                (date will be set to today, seconds to 00)
now
yesterday            (time is set to 00:00:00)
today                (time is set to 00:00:00)
tomorrow             (time is set to 00:00:00)
+5min
-5days

默认情况下,last不显示秒和年份。 使用 -F, –fulltimes选项查看完整的登录和注销时间和日期:

[linuxmi@linux:~/www.linuxmi.com]$ last -F

-i (–ip)选项强制last总是显示IP地址,-d (–dns)强制显示主机名:

[linuxmi@linux:~/www.linuxmi.com]$ last -i

总结

last命令显示有关用户登录和注销时间的信息。 有关命令的更多信息,请在终端中键入man last。

如有任何疑问,请在下面发表评论。

1 个评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注