linux last命令:说,前几天你是不是登陆某台服务器误操作了?

【引言】
最近碰到一个诉求,在排查一数据库异常时,需要查看最近或者某短时间内都有哪些人登录过服务器,以便问题回溯。那么,怎么才能查看到在一段时间内都有哪些用户登录过服务器呢?本文将介绍了如何使用last命令查看哪些用户登录过服务器。

last命令用来列出目前与过去登录系统的用户相关信息。指令英文原义:show listing of last logged in users。last是一个命令行实用程序,用于显示有关系统用户的最后登录会话的信息。当你需要跟踪用户活动,或调查可能的安全漏洞时,此功能非常有用。

首先介绍一下last命令是干啥用的?
last作用是显示近期用户或终端的登录情况。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接系统。

执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录。

再来看下last的命令格式。
 

#last -help
last: invalid option -- 'h'
Usage: last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..]

参数解释如下:
-num |-n num指定输出记录的条数
-f file 指定记录文件作为查询的log文件
-t YYYYMMDDHHMMSS 显示指定时间之前的登录情况
username 账户名称
tty 终端机编号

-R 不显示登录系统或终端的主机名称或IP
-a 将登录系统或终端的主机名过IP地址显示在最后一行
-d 将IP地址转成主机名称
-I 显示特定IP登录情况。
-o 读取有linux-libc5应用编写的旧类型wtmp文件
-x 显示系统关闭、用户登录和退出的历史
-F 显示登录的完整时间
-w 在输出中显示完整的用户名或域名

举几个栗子:
#显示最近登陆服务器的10个ip

[root@apmdb1 ~]# last -n 10
root     pts/7        192.168.0.117    Mon Jun 15 22:43   still logged in   
root     pts/8        192.168.0.43     Mon Jun 15 19:29 - 20:18  (00:48)    
root     pts/7        192.168.0.43     Mon Jun 15 19:25 - 20:18  (00:52)    
root     pts/9        192.168.0.43     Mon Jun 15 19:15 - 19:25  (00:10)    
root     pts/12       192.168.0.43     Mon Jun 15 19:06 - 19:29  (00:23)    
root     pts/11       192.168.0.43     Mon Jun 15 19:05 - 20:18  (01:12)    
root     pts/10       192.168.0.107    Mon Jun 15 19:00 - 19:11  (00:11)    
root     pts/9        192.168.0.43     Mon Jun 15 18:59 - 19:15  (00:16)    
root     pts/7        192.168.0.102   Mon Jun 15 18:53 - 19:18  (00:25)    
root     pts/12       192.168.0.107    Mon Jun 15 18:18 - 18:32  (00:13) 
wtmp begins Fri Mar 29 15:40:28 2019

#将登录系统的主机名或IP地址显示在最后一行

[root@apmdb1 ~]# last -10 -a
root     pts/8        Mon Jun 15 22:48   still logged in    192.168.0.117
root     pts/7        Mon Jun 15 22:43 - 22:55  (00:12)     192.168.0.117
root     pts/8        Mon Jun 15 19:29 - 20:18  (00:48)     192.168.0.43
root     pts/7        Mon Jun 15 19:25 - 20:18  (00:52)     192.168.0.43
root     pts/9        Mon Jun 15 19:15 - 19:25  (00:10)     192.168.0.43
root     pts/12       Mon Jun 15 19:06 - 19:29  (00:23)     192.168.0.43
root     pts/11       Mon Jun 15 19:05 - 20:18  (01:12)     192.168.0.43
root     pts/10       Mon Jun 15 19:00 - 19:11  (00:11)     192.168.0.107
root     pts/9        Mon Jun 15 18:59 - 19:15  (00:16)     192.168.0.43
root     pts/7        Mon Jun 15 18:53 - 19:18  (00:25)     192.168.0.102


wtmp begins Fri Mar 29 15:40:28 2019

提示:
上面最后一行也可以看出,每次用户登录系统时,该会话的记录都会写入/var/log/wtmp文件中。last读取文件wtmp文件并打印有关用户登录和注销的信息。从最近的记录开始,记录按时间倒序输出。

#显示用户登出时间的记录-x。

[root@apmdb1 ~]# last -n 15 -f /var/log/btmp  -x
root     ssh:notty    192.168.0.43     Mon Jun 15 18:08    gone - no logout 
root     ssh:notty    192.168.0.241    Thu Jun 11 19:43 - 18:08 (3+22:24)   
root     ssh:notty    192.168.0.16     Wed Jun 10 16:00 - 19:43 (1+03:42)   
root     ssh:notty    192.168.0.16     Wed Jun 10 14:04 - 16:00  (01:56)    
root     ssh:notty    192.168.0.117    Fri Jun  5 09:28 - 14:04 (5+04:36)   
root     ssh:notty    192.168.0.117    Fri Jun  5 09:28 - 09:28  (00:00)    

btmp begins Fri Jun  5 09:28:08 2020

【总结】
1.last命令不常用,今天玩了下,感觉在回溯问题上还是很给力的;
2.好记性不如烂笔头,本文记录之,方便以后查阅。

以下为个人公众号“一森咖记”,欢迎关注。

image.png

猜你喜欢

转载自blog.csdn.net/db_murphy/article/details/106797089
今日推荐