Linux之系统痕迹命令
系 统 中 有 一 些 重 要 的 痕 迹 日 志 文 件 , 如 /var/log/wtmp 、 /var/run/utmp 、 /var/log/btmp 、
/var/log/lastlog 等日志文件,如果你用 vim 打开这些文件,你会发现这些文件是二进制乱码。这是由
于这些日志中保存的是系统的重要登录痕迹,包括某个用户何时登录了系统,何时退出了系统,错误
登录等重要的系统信息。这些信息要是可以通过 vim 打开,就能编辑,这样痕迹信息就不准确,所以
这些重要的痕迹日志,只能通过对应的命令来进行查看。
W命令
Linux w命令用于显示目前登入系统的用户信息。
执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。
单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
语法
w [-fhlsuV][用户名称]
参数说明:
- -f 开启或关闭显示用户从何处登入系统。
- -h 不显示各栏位的标题信息列。
- -l 使用详细格式列表,此为预设值。
- -s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
- -u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。
- -V 显示版本信息
[root@iZbp145axkc98giot5b448Z ~]# w 16:10:50 up 1 day, 21:05, 4 users, load average: 0.11, 0.07, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 36.5.245.99 10:51 20:18 0.04s 0.04s -bash root pts/1 36.5.245.99 15:50 20:15 0.00s 0.00s -bash root pts/2 183.160.53.162 15:53 2.00s 0.00s 0.00s w root pts/3 183.160.53.162 15:53 8:18 0.00s 0.00s -bash [root@iZbp145axkc98giot5b448Z ~]#
who命令
who 命令和 w 命令类似,用于查看正在登陆的用户,但是显示的内容更加简单,也是查看/var/run/utmp 日志。
语法
who - [husfV] [user]
参数说明:
- -H 或 --heading:显示各栏位的标题信息列;
- -i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
- -m:此参数的效果和指定"am i"字符串相同;
- -q 或--count:只显示登入系统的帐号名称和总人数;
- -s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
- -w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
- --help:在线帮助;
- --version:显示版本信息。
[root@iZbp145axkc98giot5b448Z ~]# who root pts/0 2020-02-19 10:51 (36.5.245.99) root pts/1 2020-02-19 15:50 (36.5.245.99) root pts/2 2020-02-19 15:53 (183.160.53.162) root pts/3 2020-02-19 15:53 (183.160.53.162) [root@iZbp145axkc98giot5b448Z ~]#
last命令
last 命令是查看系统所有登陆过的用户信息的,包括正在登陆的用户和之前登陆的用户。这个命令查看的是/var/log/wtmp 痕迹日志文件。
语法
shell>> last [options]
参数说明:
- -R 省略 hostname 的栏位
- -num 展示前 num 个
- username 展示 username 的登入讯息
- tty 限制登入讯息包含终端机代号
实例
[root@iZbp145axkc98giot5b448Z ~]# last root pts/3 183.160.53.162 Wed Feb 19 15:53 still logged in root pts/2 183.160.53.162 Wed Feb 19 15:53 still logged in root pts/1 36.5.245.99 Wed Feb 19 15:50 still logged in root pts/0 36.5.245.99 Wed Feb 19 10:51 still logged in root pts/1 36.5.245.99 Tue Feb 18 22:57 - 23:25 (00:28) root pts/0 36.5.245.99 Tue Feb 18 16:58 - 23:25 (06:27) root pts/1 58.243.250.92 Mon Feb 17 21:12 - 04:37 (07:24) root pts/0 36.5.245.99 Mon Feb 17 19:12 - 21:27 (02:15) root pts/0 36.5.245.99 Mon Feb 17 19:11 - 19:12 (00:00) root pts/0 36.5.245.99 Mon Feb 17 19:06 - 19:11 (00:05) reboot system boot 3.10.0-957.21.3. Tue Feb 18 03:05 - 15:57 (1+12:52) wtmp begins Thu Jul 11 11:10:20 2019
lastlog 命令
lastlog 命令是查看系统中所有用户最后一次的登陆时间的命令,他查看的日志是/var/log/lastlog
文件。
[root@iZbp145axkc98giot5b448Z ~]# lastlog Username Port From Latest root pts/3 183.160.53.162 Wed Feb 19 15:53:06 +0800 2020 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** sshd **Never logged in** postfix **Never logged in** chrony **Never logged in** ntp **Never logged in** tcpdump **Never logged in** nscd **Never logged in** mysql **Never logged in** wgr pts/1 Tue Feb 18 22:57:18 +0800 2020
lastb 命令
lastb 命令是查看错误登陆的信息的,查看的是/var/log/btmp 痕迹日志:
[root@iZbp145axkc98giot5b448Z ~]# lastb ssh:notty 139.162.122.110 Wed Feb 19 02:28 - 02:28 (00:00) admin ssh:notty 45.190.220.53 Tue Feb 18 11:22 - 11:22 (00:00) admin ssh:notty 45.190.220.53 Tue Feb 18 11:22 - 11:22 (00:00) admin ssh:notty 45.190.220.53 Tue Feb 18 11:22 - 11:22 (00:00) admin ssh:notty 45.190.220.53 Tue Feb 18 11:22 - 11:22 (00:00) btmp begins Tue Feb 18 11:22:48 2020 [root@iZbp145axkc98giot5b448Z ~]#