centos7 查询所有用户和权限 centos7查看有哪些用户_centos7 查询所有用户和权限

centos7 查询所有用户和权限 centos7查看有哪些用户_centos7查看当前系统时间、_02

在工作中,每当用户登录系统时,程序都要在 lastlog 文件中搜索要登录用户的 UID 号,如果查询到了,则将该用户的上次登录时间、退出时间、主机名等信息进行输出,然后将本次最新的登录时间记录在 lastlog 文件中。当用户登录成功后,登录程序还要在 utmp 文件中插入该用户的登录信息,该信息并且一直保存到用户退出为止。

作为系统管理员的我们,不管在什么时候当需要查看系统中有哪些用户在操作些什么时,我们将采用今天我所跟大家分享的话题:5 种方法查看当前系统登录的用户信息及相关用法和基本介绍。


使用 w 命令

w 命令查看 utmp 文件并显示当前系统中每个用户和它所运行的进程,以及这些进程占用 CPU 的时间信息。

-u :显示结果的加载时间;

执行结果如下:

  • USER:用户名称
  • TTY:用户设备的名称或 TTY 号
  • FROM:远程主机地址
  • LOGIN@:用户登录系统的时间
  • IDLE:空闲时间
  • JCPU:附加到 TTY 终端的进程所用的时间
  • PCPU:当前进程所用时间
  • WHAT:用户当前正在使用的命令
[root@localhost ~]# w -u16:30:00 up 2 days, 23:45, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty7 :0 Mon17 1088days 14.76s 14.76s /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-F08L6U/database -nolisten tcp
root pts/0 :0.0 02:28 2:06m 0.23s 0.23s /bin/bash
root pts/1 192.168.1.119 14:24 0.00s 0.17s 0.06s w
root tty1 - Mon17 22:53m 0.03s 0.03s -bash

-h :忽略头文件信息;

[root@localhost ~]# w -h
root tty7 :0 Mon17 1088days 14.76s 14.76s /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-F08L6U/database -nolisten tcp
root pts/0 :0.0 02:28 2:07m 0.23s 0.23s /bin/bash
root pts/1 192.168.1.119 14:24 0.00s 0.11s 0.00s w -h
root tty1 - Mon17 22:54m 0.03s 0.03s -bash

-s :不显示 JCPU、PCPU、登录时间;

[root@localhost ~]# w -s16:33:21 up 2 days, 23:49, 4 users, load average: 0.00, 0.00, 0.00USER TTY FROM IDLE WHATroot tty7 :0 1088days /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-F08L6U/database -nolisten tcproot pts/0 :0.0 2:09m /bin/bashroot pts/1 192.168.1.119 0.00s w -sroot tty1 - 22:57m -bash

-f :表示开启或关闭显示用户从何处登入系统;

[root@localhost ~]# w -f
23:37:48 up 3 days, 6:53, 5 users, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root tty7 Mon17 1088days 19.45s 19.45s /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-F08L6U/database -nolisten tcp
root pts/0 02:28 1:26m 0.35s 0.35s /bin/bash
root pts/1 22:11 1.00s 0.66s 0.59s w -f
root pts/2 21:27 1:39m 0.16s 0.08s bash
root tty1 Mon17 30:01m 0.03s 0.03s -bash

-l :表示使用详细格式列表,此为预设值;

[root@localhost ~]# w -l
23:39:00 up 3 days, 6:54, 5 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty7 :0 Mon17 1088days 19.45s 19.45s /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-F08L6U/database -nolisten tcp
root pts/0 :0.0 02:28 1:28m 0.35s 0.35s /bin/bash
root pts/1 192.168.1.3 22:11 1.00s 0.10s 0.01s w -l
root pts/2 192.168.1.3 21:27 1:40m 0.16s 0.08s bash
root tty1 - Mon17 30:02m 0.03s 0.03s -bash


使用 who 命令

who 命令用于列出当前已登录系统的用户名称。

不加任何参数显示出的结果如下:

  • 第一列:用户名;
  • 第二列:终端名;
  • 第三列:登录时间,且括号里面的内容表示是从哪台主机登录的;
[root@localhost ~]# whoroot tty7 2019-05-27 17:36 (:0)root pts/0 2019-05-28 02:28 (:0.0)root pts/1 2019-05-28 14:24 (192.168.1.119)root tty1 2019-05-27 17:36

-H :显示各栏的标题信息列;

[root@localhost ~]# who -H
名称 线路 时间 备注root tty7 2019-05-27 17:36 (:0)root pts/0 2019-05-28 02:28 (:0.0)root pts/1 2019-05-28 14:24 (192.168.1.119)root pts/2 2019-05-28 21:27 (192.168.1.3)root tty1 2019-05-27 17:36

-u :显示闲置时间,若该用户在前一分钟之内有进行任何动作,将显示 "." 号,若该用户已超过 24 小时且没有任何动作,则显示 "old" 或者  "旧的" 字符串;

[root@localhost ~]# who -uroot tty7 2019-05-27 17:36 旧的 32021 (:0)root pts/0 2019-05-28 02:28 00:30 33758 (:0.0)root pts/1 2019-05-28 14:24 03:29 36188 (192.168.1.119)root pts/2 2019-05-28 21:27 . 37350 (192.168.1.3)root tty1 2019-05-27 17:36 旧的 31831

-m :效果和指定 "am i" 字符串相同;

[root@localhost ~]# who -mroot pts/2 2019-05-28 21:27 (192.168.1.3)

-q :只显示登入系统的账号名称和用户数;

[root@localhost ~]# who -q
root root root root root# 用户数=5

-w :显示用户的信息状态栏;

[root@localhost ~]# who -wroot + tty7 2019-05-27 17:36 (:0)root + pts/0 2019-05-28 02:28 (:0.0)root + pts/1 2019-05-28 14:24 (192.168.1.119)root + pts/2 2019-05-28 21:27 (192.168.1.3)root + tty1 2019-05-27 17:36


使用 whoami 命令

whoami 命令用于显示登入的用户名;

[root@localhost ~]# whoami
root

当然了,除了上述操作以外,还可以执行如下两条命令来显示当前登入的用户名称,以及当前所使用的 TTY 信息。

[root@localhost ~]# id -un root
root
[root@localhost ~]# who am i 
root pts/2 2019-05-28 21:27 (192.168.1.3)


使用 last 命令

last 命令用于显示用户最近登录信息。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些所显示的信息将来源于 /var/log/wtmp 文件。

输出的结果:

  • 第一列:用户名
  • 第二列:终端名
  • 第三列:客户端的 IP 地址
  • 第四列:登录和退出的时间,括号中的数值表示为:持续登录的时间;still logged in:表示该用户仍然在线。
[root@localhost ~]# lastroot pts/1 192.168.1.119 Tue May 28 14:24 still logged in root pts/3 192.168.1.6 Tue May 28 12:04 - 14:12 (02:07) root pts/2 administrator Tue May 28 11:03 - 13:40 (02:37)
(其他显示结果省略)

-R :省略 hostname 的信息;

[root@localhost ~]# last -Rroot pts/2 Tue May 28 21:27 still logged in root pts/1 Tue May 28 14:24 still logged in root pts/3 Tue May 28 12:04 - 14:12 (02:07) root pts/2 Tue May 28 11:03 - 13:40 (02:37) root pts/1 Tue May 28 08:59 - 13:12 (04:13) root pts/2 Tue May 28 05:00 - 08:59 (03:59) root pts/1 Tue May 28 02:28 - 07:10 (04:41)

-num 参数:将展示前 num 个,该 num 数值可改,执行命令 last -R -3 和 last -n 3 -R 输出的结果是一致的;

[root@localhost ~]# last -3root pts/2 192.168.1.3 Tue May 28 21:27 still logged in root pts/1 192.168.1.119 Tue May 28 14:24 still logged in root pts/3 192.168.1.6 Tue May 28 12:04 - 14:12 (02:07) wtmp begins Sat Jun 4 06:40:32 2016[root@localhost ~]# last -R -3[root@localhost ~]# last -n 3 -Rroot pts/2 Tue May 28 21:27 still logged in root pts/1 Tue May 28 14:24 still logged in root pts/3 Tue May 28 12:04 - 14:12 (02:07) wtmp begins Sat Jun 4 06:40:32 2016

显示最后一列主机 IP 地址;

[root@localhost ~]# last -n 5 -a -iroot pts/2 Tue May 28 21:27 still logged in 192.168.1.3root pts/1 Tue May 28 14:24 still logged in 192.168.1.119root pts/3 Tue May 28 12:04 - 14:12 (02:07) 192.168.1.6root pts/2 Tue May 28 11:03 - 13:40 (02:37) 192.168.1.6root pts/1 Tue May 28 08:59 - 13:12 (04:13) 192.168.1.126wtmp begins Sat Jun 4 06:40:32 2016You have new mail in /var/spool/mail/root

如果只查询某个用户的信息,可执行如下命令,且 -2 的意思为 num 只输出前两行的结果,如查看更多可执行命令 last root 即可;

[root@localhost ~]# last root -2
root pts/1 192.168.1.3 Tue May 28 22:11 still logged in 
root pts/2 192.168.1.3 Tue May 28 21:27 still logged in 

wtmp begins Sat Jun 4 06:40:32 2016


使用 lastlog 命令

lastlog 命令用于查看系统中每个用户最后的登录时间;

[root@localhost ~]# lastlog
用户名 端口 来自 最后登陆时间root pts/1 192.168.1.119 二 5月 28 14:24:05 +0800 2019bin **从未登录过**daemon **从未登录过**adm **从未登录过**
(其他显示结果省略)

-u :后面加用户名,则输出指定登录的最后一条记录;

[root@localhost ~]# lastlog -u root
用户名 端口 来自 最后登陆时间root pts/1 192.168.1.3 二 5月 28 22:11:07 +0800 2019

-t :后面加 DAYS NUM 则输出最近几天的记录;

[root@localhost ~]# lastlog -t 3