Linux中的last命令
如果我们要管理多用户系统,则通常需要知道登录计算机的人员,时间和来源。
“ 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