Linux 下的 Last 命令

如果你正在管理一个多用户系统,你经常需要知道谁,什么时候,并且从哪里登录了机器。
last
是一个命令行工具,它用来展示关于系统用户最后登录会话的信息。这个命令非常有用,尤其是当你需要追踪用户活动,或者调查一个可能的安全入侵问题。
本文解释如何使用last
命令来审计谁登录了系统。
一、如何使用 last 命令
last
命令的语法如下:
last [OPTIONS] [USER] [<TTY>...]
每次一个用户登录系统,一个会话记录将会被写入/var/log/wtmp
文件。last
读取这个文件,并且打印关于用户登录登出的信息。记录按照时间的反向顺序打印的,从最近的记录开始打印。
当不带任何选项或者参数运行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
显示指定用户为reboot
或者shutdown
。 - 会话占用的 tty。
:0
通常意味着用户登录了一个桌面环境 - IP 地址或者用户登录的主机名
- 会话开始时间和停止时间
- 会话时长。如果会话仍然是激活的,或者用户没有登出,last 将会显示信息,而不是时长。
想要限制,只输出指定用户或者 tty 的信息,传递用户名或者 tty 作为参数,给last
命令:
last mark
last pts/0
你也可以指定多个用户名或者多个 tts 作为参数:
last mark root pts/0
二、 last 命令选项
last
接受一些选项,用来允许你限制,格式化或者过滤输出。在这一章节,我们将会涉及最常用的一些。
想要指定你想打印命令行的行数,传递一个"-“加上数字给last
。例如,只想要打印最近10个会话,你将输入:
last -10
使用-p
(--present
)选项,你将找到在指定日期登录系统的人。
last -p 2020-01-15
使用-s
(--since
) 和 -t
(--until
)选项可以告诉last
去展示自从或者直到某个指定时间的信息。这两个选项通常用来定义你想要取回信息的时间段。例如,你想展示从 Feb 13到 Feb 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
,--fulltime
选项可以查看完整的登录和登出时间和日期:
last -F
这个-i
(--ip
)选项强制last
显示 IP 地址,并且-d
(--dns
)显示主机名:
last -i
三、总结
last
命令打印关于用户登录和登出的时间信息。想要获得更多关于这个命令的信息,在终端输入man last
。
如果你有任何疑问,请通过以下方式联系我们:
微信:

微信群: 加上面的微信,备注微信群
QQ: 3217680847

原文 :https://linuxize.com/post/last-command-in-linux/
版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。