如果您要管理多用户系统,则经常需要知道谁,何时以及从何处登录计算机。

last是一个命令行程序,用于显示有关系统用户的最后登录会话的信息。 当您需要跟踪用户活动或调查可能的安全漏洞时,此功能非常有用。

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

如何使用last命令

last命令的语法如下:

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

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

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

mark     pts/0        10.10.0.7   Fri Feb 21 21:23   still logged in
mark     pts/0        10.10.0.7   Tue Feb 18 22:34 - 00:05  (01:31)
lisa     :0           :0          Thu Feb 13 09:19   gone - no logout
reboot   system boot  4.15.0-74-g Fri Jan 24 08:03 - 08:03  (00:00)
...

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

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

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

last mark

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

last mark root pts/0

last命令选项

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

要指定您希望在命令行上打印的行数,请将数字前加一个连字符传递给last。 例如,要仅打印最近十次登录会话,请输入:

last -10

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

last -p 2020-01-15

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

last -s 2020-02-13 -u 2020-02-18

传递给-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选项查看完整的登录和注销时间和日期:

last -F

-i--ip)选项强制last始终显示IP地址,-d--dns)强制显示主机名:

last -i

结论

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

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