linux系统查看用户登录信息的命令有很多,包括w、who、whoami、users、last、lastb、lastlog、id、finger等。每个命令都可以查看当前登录的用户,但是又各有侧重点。w还可以查看用户正在执行的命令;who可以查看系统的启动时间;finger可以查看指定用户的登录信息;last可以查看历史登录记录等等。这些命令我们只需要基本的了解就行,w命令最简短、简介推荐使用;last命令常用于安全排查。
实验环境说明,此命令的使用示例均是在centos7.6操作系统下执行。
w命令可以查看正在登录的用户信息,包括用户名、tty、登录IP、登录时间、正在执行的命令等,以及系统uptime时间。使用-i参数可以主机名替换为IP地址。
[root@s152 test]# w
16:29:25 up 24 days, 1:31, 3 users, load average: 0.00, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.0.8 四10 2:13 1.31s 1.24s -bash
root pts/2 192.168.0.8 四16 5.00s 0.32s 0.00s w
wuhs pts/3 s152 16:27 2:10 0.01s 0.01s -bash
[root@s152 test]# w -i
16:30:52 up 24 days, 1:33, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.0.8 四10 3:40 1.31s 1.24s -bash
root pts/2 192.168.0.8 四16 4.00s 0.32s 0.00s w -i
wuhs pts/3 192.168.0.152 16:27 3:37 0.01s 0.01s -bash
who命令查看当前已登录用户信息(包括用户名、TTY、登录时间、登录源IP地址),可以查看操作系统的启动时间,还可以查看操作系统的启动级别,可以使用-a参数显示所有信息。

[root@s152 ~]# who -r
运行级别 3 2023-07-25 14:57
[root@s152 ~]# who -b
系统引导 2023-07-25 14:57
[root@s152 ~]# who -q
root root wuhs
# 用户数=3
users可以查看已经登录的系统用户,如果是一个用户登录多次,登录几次显示几次。
[root@s152 ~]# users
root root wuhs
whoami查看当前会话登录的用户名,命令实际上就是who am i英语短语的缩写。
[root@s152 ~]# whoami
root
[wuhs@s152 ~]$ whoami
wuhs
last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。




lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录用于发现系统登录异常。此命令要求root用户才可以执行,lastb可用参数与last命令参数相同。
[wuhs@s152 ~]$ lastb
lastb: /var/log/btmp: Permission denied
[root@s152 ~]# lastb
btmp begins Tue Aug 1 03:13:01 2023
lastlog命令从日志文件/var/log/lastlog中读取信息,并显示所有用户的最近登录记录,用于查看系统是否有异常登录。如果出现从不登录的系统用户登录了,就需要怀疑系统是否被入侵了,需要进一步排查。普通用户就可以执行该命令。

id命令可以查看用户的UID、GID等信息,id后接用户名查看指定用户的ID信息,直接执行id命令查看当前登录用户的ID信息。
[root@s152 test]# id -g
0
[root@s152 test]# id -u
0
[root@s152 test]# id -un
root
[root@s152 test]# id wuhs
uid=1000(wuhs) gid=1000(wuhs) 组=1000(wuhs)
finger命令是一个用于查询用户信息的命令。它可以显示有关特定用户或当前登录用户的详细信息,包括用户名、登录时间、登录位置、上次登录时间、用户主目录和用户Shell等。请注意,由于Finger工具的设计存在一些安全风险,因此在生产环境中通常不建议使用。当前大部分操作系统已禁用或者未安装此命令,如果需要安装此命令,linux环境下可以使用yum install -y finger方式安装。
[root@s152 test]# finger
Login Name Tty Idle Login Time Office Office Phone Host
root root pts/0 1:29 Aug 17 10:57 (192.168.0.8)
root root pts/2 Aug 17 16:20 (192.168.0.8)
[root@s152 test]# finger -l wuhs
Login: wuhs Name:
Directory: /home/wuhs Shell: /bin/bash
Last login 五 8月 18 14:23 (CST) on pts/2
No mail.
No Plan.
[root@s152 test]# finger -s wuhs
Login Name Tty Idle Login Time Office Office Phone Host
wuhs pts/2 * Aug 18 14:23
[root@s152 test]# finger -p wuhs
Login: wuhs Name:
Directory: /home/wuhs Shell: /bin/bash
Last login 五 8月 18 14:23 (CST) on pts/2
No mail.