当前位置:首页 > 行业动态 > 正文

如何使用Linux中的last命令查看系统登录历史?

“last” 命令用于显示系统上所有用户登录和注销的历史记录,包括登录时间、会话持续时间以及执行的命令等详细信息。它通常用于审计和安全分析。

last命令详解

last 是一个用于显示系统用户登录历史的命令,它从/var/log/wtmp 文件中读取数据,并显示每个用户的最近一次登录信息,以下是关于last 命令的详细解析:

基本用法

语法

last [选项] [用户名] [终端]

常用选项

-a:显示所有记录,包括没有退出的会话。

-f filename:从指定的文件读取登录信息(而不是默认的/var/log/wtmp)。

-n number:只显示最近的number 条记录。

-R:不显示登录和注销时间。

-x:显示系统关闭事件。

-F:以完整格式显示日期和时间。

示例

1、显示所有用户的最近登录记录:

   last

2、显示特定用户的登录记录:

   last username

3、显示最近的10条登录记录:

   last -n 10

4、显示所有记录,包括当前活动的会话:

   last -a

5、从指定的日志文件读取记录:

   last -f /path/to/logfile

6、以完整格式显示日期和时间:

   last -F

7、显示系统关闭事件:

   last -x

输出解释

last 命令的输出通常包含以下字段:

用户名:登录系统的用户名。

终端:用户登录的终端设备或远程主机名。

登录时间:用户登录的时间。

注销时间:用户注销的时间(如果适用)。

会话持续时间:用户会话持续的时间。

命令:用户执行的命令(如果有)。

username    pts/0        192.168.1.100    Wed Oct  5 14:22   still logged in

上述例子表示用户usernameWed Oct 5 14:22 通过 IP 地址为192.168.1.100 的设备登录,并且仍然在线。

高级用法

过滤和搜索

可以使用管道和grep 命令对last 的输出进行过滤和搜索,要查找特定用户的登录记录:

last | grep username

或者,查找在某个时间段内的登录记录:

last | grep "Oct  5"

导出到文件

可以将last 的输出重定向到文件以便以后查看:

last > last_output.txt

结合其他命令

可以结合awksortuniq 等命令对last 的输出进行进一步处理,统计每个用户的登录次数:

last | awk '{print $1}' | sort | uniq -c

FAQs

Q1: 如何更改last 命令读取的日志文件?

A1: 你可以使用-f 选项指定一个不同的日志文件,要从一个名为my_wtmp 的文件中读取登录信息,可以使用以下命令:

last -f my_wtmp

Q2: 如何只显示特定类型的事件(如系统重启)?

A2: 你可以使用-x 选项来显示系统关闭事件,包括系统重启和关机。

last -x

这将只显示与系统关闭相关的事件。

小伙伴们,上文介绍了“last命令”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0