Linux登录信息查询

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Linux登录日志的存储

在Linux系统中,登录日志主要存储在三个文件中,/var/log/wtmp/var/run/utmp/var/log/lastlog。常用的查询命令有wwholastuserslastlog等。

2. w命令

  • w命令可用于显示当前登录系统的用户信息。
  • 执行这项指令可查询目前登录系统的用户有哪些人,以及正在执行的程序。
  • 单独执行w指令会显示所有的用户,也可以指定用户名称,仅显示某位用户的相关信息。
1
2
3
4
5
root@0b6987cc587f /workspace $ w
19:30 up 48 days, 3:05, 2 users, load averages: 2.11 2.11 2.14
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 192.168.0.1 Wed14 0.00s 0.08s 0.00s w
root pts/16 192.168.0.1 Wed11 5:20 0.08s 0.08s -bash

w命令显示的对应信息如下:

当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载。

USER: 登录帐号
TTY : 终端名称
FROM: 远程主机名
LOGIN@: 登录时间
IDLE: 空闲时间
JCPU: 该TTY终端连接的所有进程的占用时间
PCPU: 当前进程(即w项中显示的)的占用时间
WHAT: 当前正在运行进程的命令行

3. who命令

who命令用于显示系统中有哪些登录用户。

1
2
3
root@0b6987cc587f /workspace $ who
root pts/2 2019-05-08 19:14 (192.168.0.1)
root pts/16 2019-05-08 18:39 (192.168.0.1)

who命令显示的对应信息如下:

登录帐号,终端名称,日期和时间,用户登录IP地址。

who am i用来查看当前登陆者的信息。

1
2
root@0b6987cc587f /workspace $ who am i
root pts/2 2019-05-08 19:14 (192.168.0.1)

4. last命令

last命令用于显示用户最近登录信息。

1
2
3
4
5
6
root@0b6987cc587f /workspace $ last -n 3
root pts/21 192.168.0.1 Thu May 9 12:01 - 19:00 (00:00)
root pts/6 192.168.0.1 Wed May 8 18:30 still logged in
root pts/2 192.168.0.1 Wed May 8 18:14 still logged in

wtmp begins Sun Dec 30 19:10:00 2018

last命令显示的对应信息如下:

用户名称,终端名称,远程主机名,日志活动发生时间,括号中的数字表示连接持续了多少小时和分钟。

5. users命令

users命令用于显示当前登录系统的所有用户列表。每个用户名对应一个登录会话。如果一个用户有不止一个登录会话,则用户名将显示相同的次数。

1
2
root@0b6987cc587f /workspace $ users
root root

6. lastlog命令

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
root@0b6987cc587f /workspace $ lastlog
Username Port From Latest
root pts/6 192.168.0.1 Sun Apr 28 18:38:20 +0800 2019
daemon **Never logged in**
bin **Never logged in**
sys **Never logged in**
sync **Never logged in**
games **Never logged in**
man **Never logged in**
lp **Never logged in**
mail **Never logged in**
news **Never logged in**
uucp **Never logged in**
proxy **Never logged in**
www-data **Never logged in**
backup **Never logged in**
list **Never logged in**
irc **Never logged in**
gnats **Never logged in**
nobody **Never logged in**
systemd-timesync **Never logged in**
systemd-network **Never logged in**
systemd-resolve **Never logged in**
systemd-bus-proxy **Never logged in**
_apt **Never logged in**
sshd **Never logged in**

7. ac命令

ac命令计算所有用户总的连接时间,默认单位是小时,基于/var/log/wtmp文件统计。

1
2
root@0b6987cc587f /workspace $ ac
total 4595.16

参考资料

  1. http://www.runoob.com/linux/linux-comm-w.html
  2. http://www.runoob.com/linux/linux-comm-who.html
  3. https://linux.cn/article-2437-1.html
  4. http://www.runoob.com/linux/linux-comm-last.html
  5. http://man.linuxde.net/users
  6. http://man.linuxde.net/lastlog
  7. https://cnbin.github.io/blog/2015/06/26/linux-ac-ming-ling/
如果有收获,可以请我喝杯咖啡!