一、命令简介
linux系统查看用户登录信息的命令有很多,包括w、who、whoami、users、last、lastb、lastlog、id、finger等。每个命令都可以查看当前登录的用户,但是又各有侧重点。w还可以查看用户正在执行的命令;who可以查看系统的启动时间;finger可以查看指定用户的登录信息;last可以查看历史登录记录等等。这些命令我们只需要基本的了解就行,w命令最简短、简介推荐使用;last命令常用于安全排查。
实验环境说明,此命令的使用示例均是在centos7.6操作系统下执行。
二、命令使用示例
1、w显示登录用户信息及正在执行的命令
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
2、who显示登录用户信息及系统启动时间等
who命令查看当前已登录用户信息(包括用户名、TTY、登录时间、登录源IP地址),可以查看操作系统的启动时间,还可以查看操作系统的启动级别,可以使用-a参数显示所有信息。
- -r参数查看系统运行级别。
[root@s152 ~]# who -r
运行级别 3 2023-07-25 14:57
- -b参数查看系统启动时间
[root@s152 ~]# who -b
系统引导 2023-07-25 14:57
- -q参数查看登录用户数量
[root@s152 ~]# who -q
root root wuhs
# 用户数=3
3、users显示已登录用户
users可以查看已经登录的系统用户,如果是一个用户登录多次,登录几次显示几次。
[root@s152 ~]# users
root root wuhs
4、whoami显示当前登录的用户名
whoami查看当前会话登录的用户名,命令实际上就是who am i英语短语的缩写。
[root@s152 ~]# whoami
root
[wuhs@s152 ~]$ whoami
wuhs
5、last显示用户登录列表
last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。
- 查看最近10条登录记录
- 查看某用户的登录记录
- 查看某个时间之前的登录记录
6、lastb显示用户登录失败列表
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
7、lastlog显示所有用户的最近登录记录
lastlog命令从日志文件/var/log/lastlog中读取信息,并显示所有用户的最近登录记录,用于查看系统是否有异常登录。如果出现从不登录的系统用户登录了,就需要怀疑系统是否被入侵了,需要进一步排查。普通用户就可以执行该命令。
8、id显示当前用户、用户组信息
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)
9、finger显示指定用户登录信息及shell
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)
- 查看指定用户的详细信息,包括-s信息以及邮件、任务计划
[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.
- Finger显示用户的登录名、真实姓名、终端名称和写入状态(如果写入权限被拒绝,则在终端名称后面显示“*”)、空闲时间、登录时间、办公室位置和办公室电话号码。
[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.