Linux last 命令
简介
在 Linux 中,"last" 命令用于显示先前登录到系统的用户列表。此命令对于需要跟踪服务器上用户活动的系统管理员特别有用。last 命令可以显示各种信息,包括访问日期和时间、会话持续时间以及用于访问系统的终端或设备。
选项和语法
last 命令的基本语法如下所示:
$ last [options] [username]
last 命令可用的选项包括:
-a − 在输出中显示系统的主机名。
-d − 显示主机的 DNS 名称而不是 IP 地址。
-f − 使用指定的文件作为数据源,而不是默认文件。
-i − 显示主机的 IP 地址而不是主机名。
-n − 限制输出的行数。
-R − 以反向 DNS 格式打印系统的 hostname 和 IP 地址。
-x − 在输出中显示系统重启消息。
概述
在管理多用户系统时,您通常需要有关登录活动的详细信息。在本教程中,我们将通过一个示例学习如何使用“last” 和 “lastb” 命令获取登录信息。
last 和 lastb 简介
last 命令显示最近登录用户的相关信息。当我们需要跟踪登录活动或调查潜在的安全漏洞时,它非常方便和有用。last 命令默认情况下会将系统日志文件“/var/log/wtmp”作为生成报告的数据源。wtmp 是 *nix 操作系统上的一个二进制文件,它保留所有登录和注销活动的记录。
“lastb” 命令与 last 命令相同,不同之处在于,它默认情况下会在“/var/log/btmp”文件中查找,该文件包含所有失败的登录尝试。普通用户没有读取“/var/log/btmp”文件的权限。
$ ls -l /var/log/btmp -rw-rw---- 1 root utmp 1152 Apr 5 00:04 /var/log/btmp
因此,只有 root 用户可以使用“lastb”命令获取失败的登录尝试报告。
理解输出
如果我们不带任何选项运行 last 命令,它将生成所有访问的历史记录报告:
$ last reboot system boot 5.5.13-arch2-1 Fri Apr 10 08:02 still running kent pts/0 192.168.0.63 Tue Apr 7 22:01 - 23:03 (01:02) reboot system boot 5.5.8-arch1-1 Tue Mar 10 20:49 - 20:49 (00:00) kent pts/5 tmux(6716).%6 Thu Mar 26 18:58 - 19:01 (7+23:02) root tty1 slash Fri Feb 21 18:45 - down (00:01) kent pts/0 80.242.164.60 Thu Feb 20 11:39 - 11:43 (00:04) guest pts/0 192.168.0.63 Sun Jan 26 19:15 - 21:32 (02:17) kent pts/2 tmux(2044).%1 Wed Jan 8 22:39 - 01:09 (02:29)
现在,让我们查看上面生成的访问报告并了解每列的含义:
第一列显示已登录用户的名称。
第二列指示用户如何连接到系统,例如通过pts(伪终端)或tty(电传打字机)。但如果是重启任务,则会显示系统启动。
第三列指示用户从何处登录。值可能是:
主机名或 IP 地址 - 如果用户是从远程计算机连接的
空值 - 如果用户通过 tty 连接
内核版本 - 如果是重启任务
某些应用程序特定的值,例如,tmux(6716).%6 表示 ProcessName(PID).WindowID
第四列指示登录活动何时发生。
第五列显示注销时间。它们可以是以下值:
时间戳 - 如果用户已注销
仍在运行 - 如果系统启动仍在运行
仍处于登录状态 - 如果用户仍处于登录状态
关闭 - 系统正常关闭
崩溃 - 如果“/var/log/wtmp”文件中没有注销条目;这通常意味着系统已崩溃
最后一列指示用户已连接多长时间,格式为(小时:分钟)。
限制输出中的行数
多用户系统很可能在wtmp 文件中记录了许多登录条目。如果我们只想查看一些最近的登录活动,我们可以使用“-n” 选项来限制 last 命令输出中的行数:
$ last -n 5 kent pts/0 192.168.0.63 Sat Apr 11 14:58 still logged in kent pts/
结论
在本文中,我们学习了 Linux 中的last 和lastb 命令,它们用于显示最近登录用户的相关信息。last 命令对于系统管理员跟踪服务器上的用户活动特别有用。本文还介绍了该命令可用的不同开关和语法,以及如何使用它们的示例。此外,我们还了解了last 命令生成的输出以及如何限制输出中的行数。上面解释的选项、示例和对输出的理解将帮助您更有效地使用此 last 命令。