7.12-7.19 id、w、who、last、lastb、lastlog
7.12 id:显示用户与用户组的信息
id命令能够显示指定用户真实有效的用户ID(UID)和组ID(GID)等信息。
id [option] [username]
-g 显示用户组ID
-G 显示用户所属附加群组的ID
-n 显示用户,所属群组或附加群组的名称,不显示数字
-r 显示实际ID
-u 显示用户ID
[root@doit ~]# id uid=0(root) gid=0(root) groups=0(root) [root@cs6 ~]# id lewen uid=901(lewen) gid=801(sa) groups=801(sa) [root@cs6 ~]# id lewen uid=901(lewen) gid=801(sa) groups=801(sa) [root@cs6 ~]# id -g 0 [root@cs6 ~]# id -gn root [root@cs6 ~]# id -u 0 [root@cs6 ~]# id -un root
7.13 w:显示已登录用户信息
w命令可以显示已经登录系统的用户,并显示用户正在执行的命令。
w [option] [user]
user参数是显示指定用户的信息。
-h 不显示前两行标题信息
-u 忽略执行程序的名称,以及CPU时间的信息
-s 使用短输出格式
[root@cs6 ~]# w 13:16:55 up 19:20, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 13:16 6.00s 0.03s 0.03s -bash root pts/1 10.0.0.1 10:50 0.00s 0.10s 0.03s w
以下是上述范例命令输出结果的格式说明。
上面的第1行输出依次显示了当前的系统时间、系统从启动到现在已经运行的时间、登录到系统中的用户数和系统平均负载。平均负载是指在lmin、5min、15min内系统的负载状况。
USER:表示登录系统的用户。
TTY:表示用户使用的TTY名称。
FROM:表示用户从哪里登录进来,一般显示远程登录主机的IP地址或主机名。
LOGIN@:用户登录的日期和时间。
IDLE:显示终端的空闲时间。
JCPU:表示该终端上的所有进程及子进程使用系统的总时间。
PCPU:当前活动进程使用的系统时间。
WHAT:当前用户执行的进程名称和选项。
[root@cs6 ~]# w -h root pts/0 10.0.0.1 13:16 1:26 0.03s 0.03s -bash root pts/1 10.0.0.1 10:50 0.00s 0.07s 0.00s w -h
7.14 who:显示已登录用户信息
who命令能够显示已经登录系统的用户,以及系统的启动时间等信息。
-a 显示所有信息,相当于-b -d -login -p -r -t -T -u
-b 显示系统的启动时间
-d 显示已死的进程
-H 显示标题,默认不显示
-l 显示登录进程
[root@cs6 ~]# who root pts/0 2019-05-12 10:34 (10.0.0.1) root pts/1 2019-05-12 10:50 (10.0.0.1) [root@cs6 ~]# who -b #<=显示启动时间。 system boot 2019-05-11 17:56 [root@cs6 ~]# who -d pts/0 2019-05-12 13:11 2506 id=ts/0 term=0 exit=0 [root@cs6 ~]# who -l #<—显示登录的进程 LOGIN tty1 2019-05-11 17:56 1483 id=1 LOGIN tty2 2019-05-11 17:56 1485 id=2 LOGIN tty3 2019-05-11 17:56 1487 id=3 LOGIN tty4 2019-05-11 17:56 1489 id=4 LOGIN tty5 2019-05-11 17:56 1491 id=5 LOGIN tty6 2019-05-11 17:56 1493 id=6 [root@cs6 ~]# who -H NAME LINE TIME COMMENT root pts/1 2019-05-12 10:50 (10.0.0.1)
显示最全的登录用户的信息
[root@cs6 ~]# who -H -a NAME LINE TIME IDLE PID COMMENT EXIT system boot 2019-05-11 17:56 run-level 3 2019-05-11 17:56 LOGIN tty1 2019-05-11 17:56 1483 id=1 LOGIN tty2 2019-05-11 17:56 1485 id=2 LOGIN tty3 2019-05-11 17:56 1487 id=3 LOGIN tty4 2019-05-11 17:56 1489 id=4 LOGIN tty5 2019-05-11 17:56 1491 id=5 LOGIN tty6 2019-05-11 17:56 1493 id=6 pts/0 2019-05-12 13:11 2506 id=ts/0 term=0 exit=0 root + pts/1 2019-05-12 10:50 . 2533 (10.0.0.1) 一般情况下,who命令的输出格式为: 名称 [状态] 线路时间 [活动] [进程标识](主机名) 其中各项的说明如下。 名称:用户的登录名。 状态:表明线路对用户是否都是可写的。 线路:类似于pts/1、pts/2等,此线路标识在/dev目录中可以找到。 时间:用户登录系统的时间。 活动:某个用户在自己的线路上最后一次活动发生以来到现在的时间。如果此项是个“.”,就表示一分钟内的线路活动;如果线路保持静止已经超过24小时,或者自从系统启动以来还没有使用过,那么此项标记为“old”。 进程标识:用户登录Shell的进程id。 主机名:登录到Linux系统上的客户端机器标识。
7.15 users:显示已登录用户
users命令可以显示已经登录系统的用户。如果是同一用户登录多次,则登录几次就会显示几次用户名。
[root@cs6 ~]# users
root root
7.16 whoami:显示当前登录的用户名
whoami命令用于显示当前登录的用户名,这个命令可以看作英文短句who ami的简写。
显示当前登录的用户名称例子。 [root@cs6 ~]# whoami root
7.17 last:显示用户登录列表
last 命令能够从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。
显示用户最近登录的列表。
[root@cs6 ~]# last -10 root pts/1 10.0.0.1 Sun May 12 10:50 still logged in root pts/0 10.0.0.1 Sun May 12 10:34 still logged in root pts/0 10.0.0.1 Sun May 12 06:23 - 10:25 (04:01) root pts/1 10.0.0.1 Sat May 11 20:37 - 10:25 (13:47) root pts/0 10.0.0.1 Sat May 11 17:57 - 20:43 (02:46) reboot system boot 2.6.32-754.el6.x Sat May 11 17:56 - 13:04 (19:07) root pts/0 10.0.0.1 Sat May 11 17:08 - down (00:48) reboot system boot 2.6.32-754.el6.x Sat May 11 17:07 - 17:56 (00:48) root pts/1 10.0.0.1 Sat May 11 15:31 - down (01:35) root pts/0 10.0.0.1 Sat May 11 12:46 - down (04:21) wtmp begins Sun May 5 23:13:36 2019 [root@cs6 ~]# last lewen # 显示用户登录情况 wtmp begins Sun May 5 23:13:36 2019
7.18 lastb:显示用户登录失败的记录
lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录,用于发现系统登录异常。
-num 指定显示结果的行教*
-n num
[root@cs6 ~]# lastb vagrant ssh:notty 10.0.0.1 Sun May 5 23:20 - 23:20 (00:00) vagrant ssh:notty 10.0.0.1 Sun May 5 23:20 - 23:20 (00:00) vagrant ssh:notty 10.0.0.1 Sun May 5 23:19 - 23:19 (00:00) vagrant ssh:notty 10.0.0.1 Sun May 5 23:19 - 23:19 (00:00) btmp begins Sun May 5 23:19:47 2019
7.19 lastlog:显示所有用户的最近登录记录
lastlog命令从日志文件/var/log/lastlog中读取信息,并显示所有用户的最近登录记录,用于查看系统是否有异常登录。
显示所有用户的最近登录记录。
[root@cs6 ~]# lastlog Username Port From Latest root pts/1 10.0.0.1 Sun May 12 10:50:00 +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** uucp **Never logged in** operator **Never logged in** games **Never logged in** gopher **Never logged in** ftp **Never logged in** nobody **Never logged in** vcsa **Never logged in** saslauth **Never logged in** postfix **Never logged in** sshd **Never logged in** ntp **Never logged in** ett **Never logged in** lewen **Never logged in** inca **Never logged in** kevin **Never logged in** #<=当从不登录的系统用户突然登录了,就要怀疑是否有用户侵入系统了。