Linux last 命令详解
如果您要管理多用户系统,则通常需要知道登录机器的人员,时间和来源。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。
如有任何疑问,请在下面发表评论。