l26.Linux用户管理知识与应用实践(二)

1,063 阅读25分钟

“ 本文正在参加「金石计划 . 瓜分6万现金大奖」 ”

14.4 用户信息修改命令usermod

usermod命令的功能非常强大,但在生产场景中其的使用频率不是很多,它不仅能更改用户的解释器类型、UID、家目录等,还能更改用户的有效期、登录名等很多与用户有关的信息。

14.4.1 usermod命令语法和常用参数

usermod [options] [login]
usermod [选项] [用户名]

usermod的作用是修改用户,而useradd的作用是添加用户,本质上都是对用户进行操作,因此,这两个命令大部分的参数作用都是一样的,只不过命令不同而已,功能上的区别就是一个是添加,一个是修改。

为了方便读者查看,表14-10将usermod可使用的参数选项展现给了大家。

表14-10 usermod常用参数说明

b14-10.png

14.4.2 usermod命令实践

范例14-8: usermod命令-c、-u、-G、-s、-d多参数组合的示例。

这里对useradd实践的范例14-6中创建的用户进行修改。原题描述如下,添加用户neteagletest,并设置其用户注释信息为good training,UID指定为806,归属为root、neteagle、sa成员,其Shell解释器类型为/bin/sh,设置家目录为/home/luffy。

现在修改neteagletest用户属性,将注释说明改为good,UID改为1999,所属的附加组改为sa,同事禁止其登录,家目录改为/home/neteagletest。实际操作步骤及结果具体如下:

[root@centos7 ~]# usermod -c "good" -u 1999 -G sa -s /sbin/nologin -d /home/neteagletest neteagletest   #修改用户信息的命令,将说明改为good,UID改为1999,所属的附加组为sa,禁止登录,家目录改为/home/neteagletest。
[root@centos7 ~]# tail -2 /etc/passwd |head -1
neteagletest:x:1999:1014:good:/home/neteagletest:/sbin/nologin
#符合修改后的预期。
[root@centos7 ~]# id neteagletest
uid=1999(neteagletest) gid=1014(neteagletest) groups=1014(neteagletest),1004(sa)
#UID和附加组也修改了。

范例14-9: 将前文的pig用户由原来是2020年11月17日过期,调整为2021年10月17日过期。

[root@centos7 ~]# usermod -e "2021/10/17" pig
[root@centos7 ~]# chage -l pig
Last password change                    : Oct 17, 2020
Password expires                    : never
Password inactive                   : never
Account expires                     : Oct 17, 2021  #过期日期显示为2021/10/17。
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7

14.5 删除用户命令userdel

从userdel命令的名称就可以知道,它的功能就是删除用户及用户相关的信息。

14.5.1 userdel命令语法和常用参数

userdel [options] [login]
userdel [选项] [用户]

userdel的参数较少,使用频率也不高,表14-11针对userdel命令的参数选项进行了说明。

表14-11 userdel命令的参数选项及说明

b14-11.png

14.5.2 userdel命令实践

在企业场景中,如果不能确认用户相关的目录有没有重要数据,就不能使用-r。

以下是删除经验小结。

  • vi /etc/passwd,然后注释掉用户,观察1个月,这样若出问题还可以还原。相当于进行操作前备份。

  • 将登录Shell修改为/sbin/nologin。

    提示: 只要是修改和删除,都要小心谨慎!

    范例14-10: 删除用户alex。

[root@centos7 ~]# grep alex /etc/passwd
alex:x:1008:1010::/home/alex:/bin/bash
[root@centos7 ~]# userdel alex  #该方法仅用于删除用户alex本身,但不删除其家目录及相关文件。
[root@centos7 ~]# grep alex /etc/passwd #/etc/passwd中已经不存在了。
[root@centos7 ~]# ll -d /home/alex  #但/home/alex家目录仍然存在。
drwx------. 2 1008 1010 62 Oct 17 19:51 /home/alex

使用“userdel 用户名”这样的方法删除用户时,只会删除用户本身,其家目录及用户的相关文件并不会被删除。一般在生产场景中,如果无法确定被删用户的家目录等是否有用,或者有不规范的用户已在家目录下存在业务脚本或程序的时候,就不用使用“userdel -r 用户名”这样危险的命令了。而是直接使用“userdel 用户名”命令删除即可。

当然,我们还可以直接使用vi编辑/etc/passwd,找到要处理的用户,先注释一段时间,确认真的没问题了,然后再清理其家目录,注释的作用与userdel命令删除的效果一样,就是实现了被注释的用户无法登录(注释掉用户当前行即可)的功能,注释的作用有些类似于回收站,一旦发现问题,可以及时进行恢复工作。当然对于大门户上千台服务器大规模运维的情况,可以使用ldap等服务实现账户统一认证登录,批量地进行添加、删除和管理,此部分内容请参加老男孩教育针对门户运维的解决方案的相关文档或课程,因为这些内容超越了本书讲解的范围,所以这里不再讲述。

范例14-11: 删除zuma用户及所有与用户相关的文件目录。

如果在userdel命令后加上了参数-r,则表示在删除该用户的同时,将用户的家目录及本地邮件存储的目录和文件一并删除。因此,一定要谨慎使用。具体实现代码如下:

[root@centos7 ~]# touch /home/zuma/test.txt #在zuma家目录下建立测试文件。
[root@centos7 ~]# ll /home/zuma/test.txt    #查看建立的文件。
-rw-r--r--. 1 root root 0 Oct 18 14:15 /home/zuma/test.txt
[root@centos7 ~]# userdel -r zuma   #带-r参数删除用户。
[root@centos7 ~]# ll /home/zuma/test.txt 
ls: cannot access /home/zuma/test.txt: No such file or directory    #测试文件test.txt也被删除了。

提示:处于登录状态中的用户无法被删除。

在生产场景中,请不要轻易使用-r参数,这会在删除用户的同时删除用户家目录下的所有文件和家目录。如果非要删除家目录,那么当用户家目录下包含了重要的文件时,建议在删除之前先进行备份。操作前进行备份在任何场合都是一个优秀运维人员应该具备的好习惯。

14.6 添加用户组命令groupadd

前文讲解了添加、修改、删除用户的相关命令,本节我们就来熟悉下添加用户组的命令groupadd。在groupadd命令后面指定用户组名执行就可以建立新的用户组了。但groupadd命令的用途不大,因为useradd命令在创建用户的同时会创建与用户同名的用户组,正常情况下都可以满足创建用户组的需求。

提示: groupadd命令的使用非常简单,但在生产环境中使用得不多,因此,会简单应用即可。

14.6.1 groupadd命令语法和常用参数

groupadd命令的语法具体如下:

groupadd [options] [group]
groupadd [选项] [用户组]

为了方便读者阅读查看相关参数,表14-12将groupadd参数选项展现给了大家。

表14-12 groupadd命令的常见参数及说明

b14-12.png

14.6.2 groupadd命令示例

在生产环境中,增加用户组的用法一般来说都是非常简单的,比如下面的示例是添加GID为802的用户组zumehome。实现代码具体如下:

[root@centos7 ~]# groupadd -g 802 zumahome  #生产场景没有必须要指定GID的需求,仅练习用。
[root@centos7 ~]# tail -1 /etc/group
zumahome:x:802:

提示: groupadd的命令在工作场景中得应用绝大多数情况下最多仅限于此,普通读者掌握本书的介绍即可。

14.7 删除用户组命令groupdel

groupdel命令用户删除指定的用户组,此命令的使用频率极低,了解一下即可。

groupdel命令语法和使用范例

groupdel命令的使用语法为:

groupdel [group]
groupdel [用户组]

说明: groupdel不能删除还有用户归属的主用户组。

范例14-12: 删除zumahome用户组。

[root@centos7 ~]# grep -w zumahome /etc/group
zumahome:x:802:
[root@centos7 ~]# groupdel zumahome #删除zumahome用户组命令。
[root@centos7 ~]# grep -w zumahome /etc/group   #找不到zumahome用户组了。
[root@centos7 ~]# groupdel root #删除root用户组失败,因为组内的root用户还存在。
groupdel: cannot remove the primary group of user 'root'

14.8 修改用户密码命令passwd

passwd命令可以修改用户密码及密码过期时间等内容,是工作中很常用的命令。普通用户和超级用户都可以运行passwd命令,但普通用户只能更改自身的用户密码,超级用户root则可以设置或修改所有用户的密码。

14.8.1 passwd命令语法和常用参数

passwd命令的使用语法为:

passwd [option] [username]
passwd [选项] [用户名]

passwd命令的功能很强大,参数也很多,但常用的参数并不多,表14-13针对passwd命令的参数选项进行了说明。

表14-13 passwd命令常见参数选项及说明

b14-13.png

除了上述说明,还要强调以下两点。

  • root用户可以修改任何用户的密码,普通用户只能修改自身的密码。
  • root用户修改密码时,如果不符合系统密码规则,则会给出警告信息,但密码设置仍然有效。而普通用户修改密码时,如果使用的时弱密码,则会给出告警信息,且修改无效。

14.8.2 passwd命令使用范例

范例14-13: 修改用户密码的示例。

(1)修改自身用户密码

当执行passwd不带任何参数和内容时,表示修改当前执行命令用户自身的密码。具体代码如下:

[root@centos7 ~]# passwd    #修改当前用户,root自身的密码。
Changing password for user root.
New password:   #输入密码123456,系统不会输出用户输入的密码。
BAD PASSWORD: The password is shorter than 8 characters #如果密码比较简单,则会给出警告信息,但不会阻止。
Retype new password:    #再次输入密码123456。
passwd: all authentication tokens updated successfully.     #但还是设置成功了。

(2)设置及修改普通用户的密码

[root@centos7 ~]# useradd younggirl #添加用户younggirl。
[root@centos7 ~]# passwd younggirl  #为younggirl用户添加密码。
Changing password for user younggirl.
New password:   #输入密码123456。
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:    #再次输入密码123456。
passwd: all authentication tokens updated successfully.     #设置成功。
[younggirl@centos7 ~]$ passwd   #修改用户自身密码。
Changing password for user younggirl.
Changing password for younggirl.
(current) UNIX password:    #先输入用户当前密码。
New password:   #输入新密码。
BAD PASSWORD: The password is too similar to the old one    #如果密码太短则不允许设置(root用户修改密码只是警告)。
New password:   #必须设置足够复杂的密码。
Retype new password:    #重复设置。
passwd: all authentication tokens updated successfully.

范例14-14: 显示账户密码信息的比例。

[younggirl@centos7 ~]$ passwd -S younggirl
Only root can do that.  #提示这个参数只能root执行。
[younggirl@centos7 ~]$ logout
[root@centos7 ~]# passwd -S younggirl
younggirl PS 2020-10-18 0 99999 7 -1 (Password set, SHA512 crypt.)

范例14-15: 一条命令非人工交互设置密码(生产使用技巧)。

[root@centos7 ~]# echo "123456" | passwd --stdin younggirl  #--stdin参数能从标准输入中获取密码。
Changing password for user younggirl.
passwd: all authentication tokens updated successfully.

提示:这个命令在工作中批量设置密码时很有用。

范例14-16: 要求younggirl用户7天之内不能更改密码,60天以后必须修改密码。过期前10天通知用户,过期后30天禁止用户登录。

解答: 这道题的目的是测试passwd多个参数的用法,读者了解一下即可。

[root@centos7 ~]# passwd -n 7 -x 60 -w 10 -i 30 younggirl   #参数的含义详见前文表14-13。
Adjusting aging data for user younggirl.
passwd: Success
[root@centos7 ~]# chage -l younggirl    #-i参数用于查看账户的信息。
Last password change                    : Oct 18, 2020  #最后一次密码变化时间为2020-10-18。
Password expires                    : Dec 17, 2020  #密码过期时间为60天,即从2020-10-18到2020-12-17.
Password inactive                   : Jan 16, 2021  #密码停权时间,即密码过期30天之后停权,-i选项可控制该行。
Account expires                     : never #账号过期时间。
Minimum number of days between password change      : 7 #-n选项可控制该行。
Maximum number of days between password change      : 60    #-x选项可控制该行。
Number of days of warning before password expires   : 10    #-w选项可控制该行。

此处,关于passwd的特殊权限请参见权限章节。

14.8.3 企业场景下用户及密码管理思路

  • 用户密码要足够复杂,最好是8位以上字母(含大小写)、数字、特殊字符的组合。
  • 较大的企业用户和密码可以统一管理(采用微软活动目录或openldap开源工具)。
  • 动态密码:动态口令,需要时登录到动态口令系统中,即时申请获得密码,但如果若干时间内部操作服务器,密码则会失效。

14.9 批量更新用户的密码命令chpasswd

chpasswd命令可从标准输入中读取一定格式的用户名、密码来批量更新用户的密码。这个格式为“用户名:密码”,注意,用户名必须事先真实存在,否则,该命令无法为一个不存在的用户设置密码。

范例14-17: 批量修改密码的实践。

解答: 要确保修改密码的用户存在,这里是neteagle和younggirl。

[root@centos7 ~]# id neteagle   #确定要修改密码的neteagle用户是否存在。
uid=1004(neteagle) gid=1005(incahome) groups=1005(incahome)
[root@centos7 ~]# id younggirl  #确定要修改密码的younggirl用户是否存在。
uid=1005(younggirl) gid=1005(incahome) groups=1005(incahome)

方法1: 命令行直接输入并执行。

[root@centos7 ~]# chpasswd  #在命令行输入chpasswd,回车。
root:123456     #格式为“用户名:密码”,用户必须事先真实存在才行。
neteagle:123456     #一行一个。
younggirl:123456
[root@centos7 ~]#   #在新的空行输入Ctrl+d结束输入。

方法2: 将用户和密码字符串放到文件里执行。

[root@centos7 ~]#vim user.txt   #建文件user.txt,存入用户名和密码字符串,注意格式。
root:123456     #格式为“用户名:密码”,用户必须事先真实存在才行,且一行一个。
neteagle:123456
younggirl:123456
:wq
[root@centos7 ~]# cat user.txt
root:123456
neteagle:123456
younggirl:123456
[root@centos7 ~]# chpasswd <user.txt    #利用输入重定向一次性为所有用户设置预先指定的密码。

14.10 修改用户密码有效期命令chage

14.10.1 chage命令语法和常用参数

chage命令用于查看或修改用户密码的有效期,有些参数的功能与passwd相同。

chage命令语法格式如下:

chage [option] [login]
chage [选项] [用户名]

表14-14针对chage命令的参数选项进行了说明。

表14-14 chage命令的参数选项及说明

b14-14.png

14.10.2 chage命令使用范例

范例14-18: 创建新用户range,要求该用户在7天之内不能更改密码,60天以后必须修改密码,过期前10天通知用户,过期30天之后禁止用户登录。

这个案例的前面已经用passwd实现过了,本范例再使用chage实现同样的功能,命令如下:

[root@centos7 ~]# useradd range #添加新用户range。
[root@centos7 ~]# chage -m7 -M60 -W10 -I30 range    #使用change按题意要求进行授权。
[root@centos7 ~]# chage -l range
Last password change                    : Oct 18, 2020  #最后一次密码变化时间为2020-10-18,-d选项可控制该行。
Password expires                    : Dec 17, 2020  #密码过期时间为60天,即从2020-10-18到2020-12-17,该行受-M参数影响。
Password inactive                   : Jan 16, 2021  #密码停权时间,即密码过期30天后停权,-I选项可控制该行。
Account expires                     : never #账户过期时间,-E选项可控制该行。
Minimum number of days between password change      : 7     #-m选项可控制该行。
Maximum number of days between password change      : 60    #-M选项可控制该行。
Number of days of warning before password expires   : 10    #-W选项可控制该行。

下面就来测试-E参数的使用,代码如下:

[root@centos7 ~]# chage -E 2020-12-31 range #测试-E参数的使用。
[root@centos7 ~]# chage -l range |grep "Account expires"
Account expires                     : Dec 31, 2020
#用户有效期变成了设定的日期。
[root@centos7 ~]# usermod -e "2021/12/31" range #usermod也可以更改用户有效期。
[root@centos7 ~]# chage -l range |grep "Account expires"
Account expires                     : Dec 31, 2021

14.11 用户查询相关命令

本节主要介绍在用户管理中,查询用户的几种常见工具id、finger、users、w、who、last、lastlog、groups的用法。

14.11.1 id命令

id命令通常用了查询用户和组信息以及对应的UID、GID等信息,它的用法非常简单,示例代码如下:

[root@centos7 ~]# id neteagle   #查看neteagle的用户及组相关的信息。
uid=1004(neteagle) gid=1005(incahome) groups=1005(incahome) #用户和组信息以及对应的UID、GID。
[root@centos7 ~]# id -u neteagle    #只查看用户UID。
1004
[root@centos7 ~]# id -g neteagle    #只查看用户GID。
1005
[root@centos7 ~]# id -un neteagle   #只查看用户名。
neteagle
[root@centos7 ~]# id -gn neteagle   #只查看用户组名。
incahome

14.11.2 whoami、who、w、last、lastlog命令

whoami命令可用于查看当前登录的用户,w命令的作用是显示已经登录的用户,并且展示他都做了什么的信息。而last、lastlog命令可以查看用户更详细的登录信息,不同命令的侧重点略有差别,大家可以仔细对比下。示例代码具体如下:

[root@centos7 ~]# whoami    #查看当前登录的用户,比较常用。
root
[root@centos7 ~]# w
w: 68 column window is too narrow   #提示窗口太小,把窗口最大化就好了。
[root@centos7 ~]# w #显示已经登录的用户,并且展示他都做了什么的信息。查看的信息与/var/run/utmp文件有关,比较常用。
 15:56:45 up  2:32,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         13:25    5.00s  1.28s  0.02s w

以下是上述w命令输出结果的格式说明。

  • 上面第1行的输出依次显示了当前的系统时间、系统从启动到现在已经运行的诗句、登录到系统中的用户数和系统平均负载。平均负载是指在1分钟、5分钟、15分钟之内系统的负载情况。
  • USER:表示登录系统的用户。
  • TTY:表示用户使用的TTY名称。
  • FROM:表示用户从哪里登录进来,一般是显示远程登录主机的IP地址或者主机名。
  • LOGIN@:用户登录的日期和时间。
  • IDLE:显示终端空闲时间。
  • JCPU:表示该终端上的所有进程及子进程使用系统的总时间。
  • PCPU:当前活动进程使用的系统时间。
  • WHAT:当前用户执行的进程名称和选项。
[root@centos7 ~]# who   #显示哪些用户正在登录,登录的终端及登录时间,来源主机,显示的信息比w少,不常用。
root     pts/0        2020-10-18 13:25 (10.0.0.1)

以下是who命令的输出格式及说明:

名称 [状态] 线路 时间 [活动] [进程标识] [主机名]

其中各项参数的说明具体如下。

  • 名称:用户的登录名。
  • 状态:表明线路对用户是否都是可写的。
  • 线路:类似于pts/1、pts/2等,此线路标识在/dev目录中可以找到。
  • 时间:用户登录系统的时间。
  • 活动:某个用户在自己的线路上最后一次活动发生以来到现在的诗句。如果此项是个“.”,就标识一分钟内的线路活动;如果线路保持静止已经超过24小时,或者从系统启动以来还没有被使用过,那么此标记为“old”。
  • 进程标识:用户登录Shell的进程id。
  • 主机名:登录到Linux系统上的客户端机器标识。
[root@centos7 ~]# last  #显示已登录的用户列表及登录时间等,查看的信息与/var/log/wtmp及/var/log/btmp两个文件有关。
root     pts/0        10.0.0.1         Sun Oct 18 13:25   still logged in   
reboot   system boot  3.10.0-1127.19.1 Sun Oct 18 13:23 - 16:10  (02:46)    
root     pts/0        10.0.0.1         Sat Oct 17 20:45 - crash  (16:38)    
root     pts/0        10.0.0.1         Sat Oct 17 20:41 - 20:45  (00:03)    
root     pts/0        10.0.0.1         Sat Oct 17 20:41 - 20:41  (00:00)    
root     pts/0        10.0.0.1         Sat Oct 17 19:37 - 20:41  (01:03)    
root     pts/0        10.0.0.1         Sat Oct 17 13:15 - 19:37  (06:22)    
reboot   system boot  3.10.0-1127.19.1 Sat Oct 17 13:13 - 16:10 (1+02:56)   
root     pts/0        10.0.0.1         Fri Oct 16 21:42 - down   (00:07)    
test     pts/2        10.0.0.1         Fri Oct 16 15:23 - 21:49  (06:25)    
neteagle pts/1        10.0.0.1         Fri Oct 16 14:22 - 21:49  (07:26)    
root     pts/0        10.0.0.1         Fri Oct 16 13:42 - 21:42  (07:59)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct 16 13:19 - 21:49  (08:29)    
test     pts/3        10.0.0.1         Thu Oct 15 19:28 - 21:09  (01:41)    
younggir pts/2        10.0.0.1         Thu Oct 15 19:27 - 21:09  (01:42)    
neteagle pts/1        10.0.0.1         Thu Oct 15 19:24 - 21:09  (01:45)    
root     pts/0        10.0.0.1         Thu Oct 15 12:34 - down   (08:34)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct 15 12:33 - 21:09  (08:35)    
root     pts/0        10.0.0.1         Wed Oct 14 14:32 - down   (06:39)    
reboot   system boot  3.10.0-1127.19.1 Wed Oct 14 14:31 - 21:11  (06:40)    
root     pts/0        10.0.0.1         Tue Oct 13 13:24 - crash (1+01:06)   
reboot   system boot  3.10.0-1127.19.1 Tue Oct 13 13:22 - 21:11 (1+07:48)   
root     pts/1        10.0.0.1         Mon Oct 12 20:42 - down   (01:26)    
root     pts/0        10.0.0.1         Mon Oct 12 16:12 - down   (05:56)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct 12 15:57 - 22:08  (06:10)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct 12 13:01 - 22:08  (09:07)    
root     pts/0        10.0.0.1         Sun Oct 11 17:44 - crash  (19:16)    
reboot   system boot  3.10.0-1127.19.1 Sun Oct 11 17:40 - 22:08 (1+04:27)   
root     pts/0        10.0.0.1         Sun Oct 11 13:16 - down   (-12:00)   
reboot   system boot  3.10.0-1127.19.1 Sun Oct 11 13:13 - 01:16  (-11:-57)  
root     pts/0        10.0.0.1         Sat Oct 10 18:13 - crash  (19:00)    
reboot   system boot  3.10.0-1127.19.1 Sat Oct 10 18:11 - 01:16  (07:04)    
root     pts/0        10.0.0.1         Sat Oct 10 13:44 - crash  (04:26)    
reboot   system boot  3.10.0-1127.19.1 Sat Oct 10 13:43 - 01:16  (11:32)    
root     pts/1        10.0.0.1         Fri Oct  9 16:44 - down   (04:40)    
root     pts/0        10.0.0.1         Fri Oct  9 13:21 - down   (08:03)    
root     pts/1        10.0.0.1         Fri Oct  9 13:17 - 13:21  (00:04)    
root     pts/2        10.0.0.1         Fri Oct  9 13:16 - 13:17  (00:01)    
root     pts/1        10.0.0.1         Fri Oct  9 13:15 - 13:17  (00:01)    
root     pts/0        10.0.0.1         Fri Oct  9 13:14 - 13:17  (00:03)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct  9 13:13 - 21:24  (08:11)    
root     pts/0        10.0.0.1         Thu Oct  8 22:11 - down   (00:04)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct  8 22:11 - 22:16  (00:05)    
root     pts/0        10.0.0.1         Thu Oct  8 22:09 - 22:10  (00:00)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct  8 22:07 - 22:10  (00:02)    
root     pts/0        10.0.0.1         Thu Oct  8 22:07 - down   (00:00)    
root     pts/0        10.0.0.1         Thu Oct  8 20:22 - 22:07  (01:45)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct  8 20:21 - 22:07  (01:46)    
root     pts/0        10.0.0.1         Thu Oct  8 19:44 - down   (00:34)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct  8 19:43 - 20:19  (00:35)    
root     tty1                          Thu Oct  8 14:35 - 19:43  (05:07)    
root     pts/0        10.0.0.1         Thu Oct  8 14:16 - down   (05:26)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct  8 14:16 - 19:43  (05:26)    
root     pts/0        10.0.0.1         Thu Oct  8 14:16 - down   (00:00)    
root     pts/0        10.0.0.1         Thu Oct  8 14:12 - 14:15  (00:03)    
root     pts/0        10.0.0.1         Thu Oct  8 13:22 - 14:12  (00:49)    
root     pts/0        10.0.0.1         Thu Oct  8 13:19 - 13:22  (00:02)    
root     pts/0        10.0.0.1         Thu Oct  8 13:07 - 13:19  (00:12)    
root     pts/0        10.0.0.1         Thu Oct  8 13:06 - 13:06  (00:00)    
root     pts/0        10.0.0.1         Thu Oct  8 13:00 - 13:06  (00:06)    
reboot   system boot  3.10.0-1127.19.1 Thu Oct  8 12:58 - 14:16  (01:17)    
root     pts/0        10.0.0.1         Wed Oct  7 18:41 - 22:42  (04:01)    
root     pts/0        10.0.0.1         Wed Oct  7 18:40 - 18:41  (00:00)    
root     pts/0        10.0.0.1         Wed Oct  7 15:59 - 18:40  (02:41)    
root     pts/0        10.0.0.1         Wed Oct  7 15:51 - 15:59  (00:07)    
root     pts/0        10.0.0.1         Wed Oct  7 15:23 - 15:51  (00:28)    
reboot   system boot  3.10.0-1127.19.1 Wed Oct  7 15:22 - 14:16  (22:54)    
root     pts/1        10.0.0.1         Wed Oct  7 15:19 - crash  (00:02)    
root     pts/0        10.0.0.1         Wed Oct  7 12:55 - crash  (02:27)    
reboot   system boot  3.10.0-1127.19.1 Wed Oct  7 12:51 - 14:16 (1+01:24)   
root     pts/0        10.0.0.1         Tue Oct  6 15:52 - crash  (20:59)    
root     pts/1        10.0.0.1         Tue Oct  6 13:36 - crash  (23:14)    
root     pts/0        10.0.0.1         Tue Oct  6 13:30 - 15:52  (02:22)    
reboot   system boot  3.10.0-1127.19.1 Tue Oct  6 13:02 - 14:16 (2+01:13)   
root     pts/0        10.0.0.1         Mon Oct  5 18:14 - down   (03:38)    
root     pts/0        10.0.0.1         Mon Oct  5 18:13 - 18:14  (00:00)    
root     pts/0        10.0.0.1         Mon Oct  5 16:51 - 18:13  (01:21)    
root     pts/0        10.0.0.1         Mon Oct  5 16:50 - 16:51  (00:00)    
root     pts/0        10.0.0.1         Mon Oct  5 16:49 - 16:50  (00:00)    
root     pts/0        10.0.0.1         Mon Oct  5 16:42 - 16:49  (00:07)    
root     pts/0        10.0.0.1         Mon Oct  5 16:42 - 16:42  (00:00)    
root     pts/0        10.0.0.1         Mon Oct  5 16:28 - 16:41  (00:13)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct  5 16:05 - 21:52  (05:47)    
root     pts/0        10.0.0.1         Mon Oct  5 16:04 - down   (00:00)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct  5 16:04 - 16:05  (00:00)    
root     pts/0        10.0.0.1         Mon Oct  5 16:02 - crash  (00:01)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct  5 15:54 - 16:05  (00:10)    
root     pts/0        10.0.0.1         Mon Oct  5 15:37 - down   (00:13)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct  5 15:37 - 15:51  (00:14)    
root     pts/0        10.0.0.1         Mon Oct  5 14:36 - down   (00:57)    
reboot   system boot  3.10.0-1127.19.1 Mon Oct  5 14:31 - 15:34  (01:02)    
root     pts/0        10.0.0.1         Sat Oct  3 13:50 - 22:00  (08:09)    
reboot   system boot  3.10.0-1127.19.1 Sat Oct  3 13:50 - 22:00  (08:10)    
root     pts/0        10.0.0.1         Fri Oct  2 17:22 - crash  (20:28)    
root     pts/0        10.0.0.1         Fri Oct  2 17:22 - 17:22  (00:00)    
root     pts/1        10.0.0.1         Fri Oct  2 16:26 - 16:26  (00:00)    
root     pts/0        10.0.0.1         Fri Oct  2 16:09 - 17:21  (01:12)    
root     tty1                          Fri Oct  2 16:07 - 21:54  (05:47)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct  2 16:06 - 22:00 (1+05:53)   
root     pts/0        10.0.0.1         Fri Oct  2 15:56 - down   (00:06)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct  2 15:55 - 16:03  (00:08)    
root     pts/0        10.0.0.1         Fri Oct  2 15:55 - crash  (00:00)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct  2 15:53 - 16:03  (00:10)    
root     pts/0        10.0.0.1         Fri Oct  2 15:47 - crash  (00:05)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct  2 15:47 - 16:03  (00:16)    
root     pts/1        10.0.0.1         Fri Oct  2 14:47 - 14:47  (00:00)    
root     pts/1        10.0.0.1         Fri Oct  2 14:47 - 14:47  (00:00)    
root     pts/1        10.0.0.1         Fri Oct  2 14:42 - 14:47  (00:04)    
root     pts/1        10.0.0.1         Fri Oct  2 14:42 - 14:42  (00:00)    
root     pts/1        10.0.0.1         Fri Oct  2 14:35 - 14:35  (00:00)    
root     pts/0        10.0.0.1         Fri Oct  2 13:19 - down   (01:58)    
root     pts/0        10.0.0.1         Fri Oct  2 13:00 - 13:19  (00:18)    
reboot   system boot  3.10.0-1127.19.1 Fri Oct  2 12:59 - 15:18  (02:19)    
root     pts/0        10.0.0.1         Thu Oct  1 15:29 - down   (06:43)    
root     pts/0        10.0.0.1         Thu Oct  1 15:12 - 15:29  (00:16)    
root     tty1                          Thu Oct  1 14:53 - 22:12  (07:19)    
reboot   system boot  3.10.0-957.el7.x Thu Oct  1 14:50 - 22:12  (07:21)    
​
wtmp begins Thu Oct  1 14:50:46 2020
​
[root@centos7 ~]# lastlog   #报告最近的所有系统用户的登录信息,查看的信息与/var/log/lastlog日志有关。
Username         Port     From             Latest
root             pts/0    10.0.0.1         Sun Oct 18 13:25:34 +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**
tss                                        **Never logged in**
abrt                                       **Never logged in**
sshd                                       **Never logged in**
postfix                                    **Never logged in**
tcpdump                                    **Never logged in**
neteagle1                                  **Never logged in**
neteagle2                                  **Never logged in**
apache                                     **Never logged in**
neteagle         pts/0                     Sat Oct 17 20:44:31 +0800 2020
younggirl        pts/0                     Sun Oct 18 14:58:13 +0800 2020
test             pts/2    10.0.0.1         Fri Oct 16 15:23:37 +0800 2020
inca                                       **Never logged in**
ntp                                        **Never logged in**
mysql                                      **Never logged in**
pig                                        **Never logged in**
neteagletest                               **Never logged in**
newuser                                    **Never logged in**
younggile                                  **Never logged in**
range                                      **Never logged in**