Linux中的last命令

时间:2020-03-05 15:28:22  来源:igfitidea点击:

如果我们要管理多用户系统,则通常需要知道登录计算机的人员,时间和来源。

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

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

如何使用“ last”命令

“ last”命令的语法如下:

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

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

如果在没有任何选项或者参数的情况下调用“ last”,则输出如下所示:

mark     pts/0        10.10.0.7   Fri Nov 21 21:23   still logged in
mark     pts/0        10.10.0.7   Tue Nov 18 22:34 - 00:05  (01:31)
lisa     :0           :0          Thu Nov 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 marklast pts/0

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

last mark root pts/0

“last”命令选项

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

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

last -10

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

last -p 2017-01-15

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

last -s 2017-02-13 -u 2017-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

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

last -F

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

last -i