查看用户登录信息

w

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
==============================================================================================
查看当前登入系统的用户信息及用户当前的进程(而who命令只能看用户不能看进程)。该命令能查看的信息包括系统当前时间,系统运行时间,登陆系统用户总数及系统1、5、15分钟内的平均负载信息。后面的信息是用户,终端,登录源,login time,idle time,JCPU,PCPU,当前执行的进程等。w的信息来自两个文件:用户登录信息来自/var/run/utmp,进程信息来自/proc/。

参数
-h:不显示标题。
-u:列出当前进程和CPU时间时忽略用户名。这主要是用于执行su命令后的情况。
-s:使用短模式。不显示登录时间、JCPU(终端机阶段作业)和PCPU(程序消耗)时间。
-f:切换显示FROM项,也就是远程主机名项。默认值是不显示远程主机名
-V:显示版本信息。
==============================================================================================
[root@haproxy ~]# w
18:33:57 up 11:19, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 15:17 3:15m 0.07s 0.07s -bash
root pts/0 192.168.1.9 12:18 5.00s 0.70s 0.00s w
# User:登录用户名
# TTY:登录后系统分配的终端号
# From:远程主机名,即从哪登录的
# login@:何时登录
# IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
# JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
# PCPU:当前进程所占用时间
# WHAT:当前正在运行进程的命令行

who

1
2
3
4
5
6
==============================================================================================
查看当前登入系统的用户信息。其中who -m等效于whoami。
==============================================================================================
[root@haproxy ~]# who
root tty1 2019-01-29 15:17
root pts/0 2019-01-29 12:18 (192.168.1.9)

last

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
==============================================================================================
列出当前和曾经登入系统的用户信息,它默认读取的是/var/log/wtmp文件的信息。输出的内容包括:用户名、终端位置(pts/0伪终端,意味着从SSH或telnet等工具远程连接的用户,图形界面终端归于此类。tty0直接连接到计算机或本地连接的用户。后面的数字代表连接编号)、登录源信息、开始时间、结束时间(still login in尚未退出,down直到正常关机,crash直到强制关机)、持续时间。注意最后一行输出的是wtmp文件起始记录的时间。当然也可以通过last -f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp

参数
-R 不显示登录系统或终端的主机名称或IP
-a 将登录系统或终端的主机名过IP地址显示在最后一行
-d 将IP地址转成主机名称
-I 显示特定IP登录情况。
-o 读取有linux-libc5应用编写的旧类型wtmp文件
-x 显示系统关闭、用户登录和退出的历史
-F 显示登录的完整时间
-w 在输出中显示完整的用户名或域名
==============================================================================================
[root@haproxy ~]# last
root pts/0 192.168.1.9 Tue Jan 29 12:18 still logged in
root pts/0 192.168.1.9 Tue Jan 29 15:22 - 12:18 (-3:-3)
root tty1 Tue Jan 29 15:17 still logged in
reboot system boot 3.10.0-693.el7.x Tue Jan 29 15:13 - 18:41 (03:27)
root tty1 Wed Oct 24 05:42 - 05:50 (00:07)
reboot system boot 3.10.0-693.el7.x Wed Oct 24 05:42 - 05:50 (00:07)

wtmp begins Wed Oct 24 05:42:31 2018

[root@haproxy ~]# last -f /var/log/btmp

btmp begins Wed Oct 24 05:42:34 2018

[root@haproxy ~]# last -f /var/run/utmp
root pts/0 192.168.1.9 Tue Jan 29 12:18 still logged in
root tty1 Tue Jan 29 15:17 still logged in
reboot system boot 3.10.0-693.el7.x Tue Jan 29 15:13 - 18:43 (03:29)

utmp begins Tue Jan 29 15:13:55 2019

[root@haproxy ~]# last root
root pts/0 192.168.1.9 Tue Jan 29 12:18 still logged in
root pts/0 192.168.1.9 Tue Jan 29 15:22 - 12:18 (-3:-3)
root tty1 Tue Jan 29 15:17 still logged in
root tty1 Wed Oct 24 05:42 - 05:50 (00:07)
# 指定用户

[root@haproxy ~]# last -n 1
root pts/0 192.168.1.9 Tue Jan 29 12:18 still logged in

wtmp begins Wed Oct 24 05:42:31 2018
# 指定输出记录的条数

[root@haproxy ~]# last -10 -t 20190129000000
root tty1 Wed Oct 24 05:42 - 05:50 (00:07)
reboot system boot 3.10.0-693.el7.x Wed Oct 24 05:42 - 05:50 (00:07)

wtmp begins Wed Oct 24 05:42:31 2018
# 显示指定时间之前的记录

[root@haproxy ~]# last -10 -d
root pts/0 192.168.1.9 Tue Jan 29 12:18 still logged in
root pts/0 192.168.1.9 Tue Jan 29 15:22 - 12:18 (-3:-3)
root tty1 0.0.0.0 Tue Jan 29 15:17 still logged in
reboot system boot 0.0.0.0 Tue Jan 29 15:13 - 18:56 (03:42)
root tty1 0.0.0.0 Wed Oct 24 05:42 - 05:50 (00:07)
reboot system boot 0.0.0.0 Wed Oct 24 05:42 - 05:50 (00:07)

wtmp begins Wed Oct 24 05:42:31 2018
# 将IP 地址转换为主机地址

lastlog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
==============================================================================================
列出所有用户最近登录的信息,或者指定用户的最近登录信息。lastlog引用的是/var/log/lastlog文件中的信息,包括login-name、port、last login time
==============================================================================================
[root@haproxy ~]# lastlog
Username Port From Latest
root pts/0 192.168.1.9 Tue Jan 29 12:18:32 +0800 2019
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
operator **Never logged in**
games **Never logged in**
ftp **Never logged in**
nobody **Never logged in**
systemd-network **Never logged in**
dbus **Never logged in**
polkitd **Never logged in**

[root@haproxy ~]# lastlog -u 0
Username Port From Latest
root pts/0 192.168.1.9 Tue Jan 29 12:18:32 +0800 2019
# 通过用户的UID查看指定用户的登录信息

lastb

1
2
3
4
5
6
7
==============================================================================================
列出失败尝试的登录信息,和last命令功能完全相同,只不过它默认读取的是/var/log/btmp文件的信息。当然也可以通过last -f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp
==============================================================================================
[root@haproxy ~]# lastb
root ssh:notty 192.168.1.9 Tue Jan 29 19:05 - 19:05 (00:00)

btmp begins Tue Jan 29 19:05:21 2019

登录日志

1
2
3
4
1. /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;
2. /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;
3. /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。
4. /var/log/lastlog:记录每个用户最后的登入信息

清除登录日志

1
2
3
4
5
6
7
8
9
[root@haproxy ~]# echo > /var/log/wtmp 
[root@haproxy ~]# echo > /var/log/btmp
[root@haproxy ~]# echo > /var/log/lastlog
[root@haproxy ~]# history -r
# 导入当前用户家目录中的.bash_history
[root@haproxy ~]# history -c
# 清除当前会话的历史记录
[root@haproxy ~]# echo > ~/.bash_history
# 清除所有历史记录
作者

John Doe

发布于

2019-01-29

更新于

2023-03-17

许可协议