• 快速上手Linux核心命令(十一):Linux用户相关命令


    前言

    上一篇中已经预告,我们这篇主要说一说Linux中用户相关的命令。
    可能各位小伙伴用的Windows会比较多一点,在Windows操作系统中,我们知道有Administrator用户,Administrator 是Windows系统中的管理员用户,有着最高的权限。
    用户登录Administrator后可以创建Gust等用户,修改密码并且给Gust用户分配相应的权限。
    同样的在Linux中,root就相当于Administrator用户,具有着最高权限。登录root 用户可以创建用户、修改用户密码、给用户分配角色等等。
    下面思维导图中列出了我们需要掌握的19个命令
    在这里插入图片描述

    useradd 创建用户

    1、简介

    useradd 命令用户创建新的用户或者更改用户信息

    2、原理
    在这里插入图片描述

    3、语法格式

    useradd [参数选项] [用户名]
    或
    useradd -D [参数选项]
    

    4、参数说明
    ① 不加选项-D参数

    参数选项 参数说明
    -c comment 加上备注信息,会保存到passwd备注栏中(第五列)
    -d home_dir 新用户每次登录时使用的家目录
    -e expire_date 用户终止日期
    -f inactive_days 用户过期几日后永久停权
    -g initial_group 指定用户对应的用户组。用户组必须是系统现在已存在的名词
    -G group,[...] 定义此用户为多个不同组的成员。每个用户组使用逗号(,)分割
    -m 用户目录如不存在则自动建立
    -M 不建立家目录,优先于、etc/login.defs文件设定。【创建虚拟用户时一般不需要建立家目录,部署应用服务时则需要创建虚拟用户】
    -n 默认情况下用户的用户组和用户名称是相同的。通过该参数,就不会生成与用户名一样的用户组了
    -s shell 用户登录后使用的Shell名称。默认不填写,系统会使用配置文件(/etc/default/useradd)中的预设值
    -u uid 用户ID值。这个值是唯一的

    ② 加-D选项参数

    参数选项 参数说明
    -b defalut_home 定义用户家目录的基本目录,当用户家目录不存在时,此目录将作为家目录生效
    -e defalut_expire_date 用户账号停止日期
    -f defalut_inactive 用户过期几日后停权
    -g defalut_group 新用户起始用户组名或ID。用户组名必须为现已存在的名称
    -s default_shell 用户登录后使用Shell名称

    5、实践操作
    ① 不加任何参数添加用户

    # 创建xiezhrspace 用户
    [root@xiezhr ~]# useradd xiezhrspace
    # /home/ 路径下新生成一个xiezhrspace 目录。这个就是xiezhrspace用户的家目录
    [root@xiezhr ~]# ls -ld /home/xiezhrspace
    drwx------ 2 xiezhrspace xiezhrspace 4096 Aug 29 23:05 /home/xiezhrspace
    

    在前面我们说过创建一个新用户会在/etc/shadow、/etc/group 和/etc/gshsdow 文件中生成相关信息,具体是不是这样的呢?
    我们去看一看(●'◡'●)

    # 在创建用户时候没有指定密码,但是shadow还是生成了一行信息
    [root@xiezhr ~]# grep -w xiezhrspace /etc/shadow
    xiezhrspace:!!:19233:0:99999:7:::
    
    # 创建用户时,默认会创建与用户名同名的用户组
    [root@xiezhr ~]# grep -w xiezhrspace /etc/group
    xiezhrspace:x:1002:
    
    #组密码文件中也会增加一条信息
    [root@xiezhr ~]# grep -w xiezhrspace /etc/gshadow
    xiezhrspace:!::
    

    ② 创建一个组,并将新建用户归于这个组

    # 创建一个gid 为808 的用户组
    [root@xiezhr ~]# groupadd -g 808 xiezhrgroup
    # 创建一个uid为908的用户xietest,并将用户归于xiezhrgroup组
    [root@xiezhr ~]# useradd -g xiezhrgroup -u 908 xietest
    # 查看用户信息
    [root@xiezhr ~]# id xietest
    uid=908(xietest) gid=808(xiezhrgroup) groups=808(xiezhrgroup)
    

    ③ -M -s参数的使用(在生产环境中部署Nginx、MySQL等服务经常使用

    # -M 不创建见目录
    # -s 指定登录后的Shell
    # /sbin/nologin  表示禁止登陆
    [root@xiezhr ~]# useradd -M -s /sbin/nologin xiaofang
    [root@xiezhr ~]# ls -ld /home/xiaofang
    ls: cannot access /home/xiaofang: No such file or directory
    [root@xiezhr ~]# grep -w xiaofang /etc/passwd
    xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin
    

    /etc/passwd 文件说明

    xiaofang x 1003 1003 /home/xiaofang /sbin/nologin
    用户名称 账号密码 账号UID 账号组GID 用户说明 用户家目录 shell解释器

    usermod 修改用户信息

    1、简介

    usermod 命令用于修改系统已经存在的用户账号信息

    2、语法格式

    usermod [参数选项] [用户名]
    

    3、参数选项

    参数 参数说明
    -c comment 修改用户password文件中用户的说明栏,与useradd -c 功能相同
    -d home_dir 修改用户的家目录 与useradd -d 功能相同
    -e expire_date 修改用户终止日期 与useradd -e 功能相同
    -f inactive_days 修改用户过期后几日永久停权 与useradd -f 功能相同
    -g initial_group 修改用户对应的用户组 与useradd -g 功能相同
    -G group,[......] 修改此用户为多个不同组的成员 与useradd -G功能相同
    -m 用户目录如果不存在则自动建立
    -M 不建立用户家目录。一般创建虚拟用户时不建立家目录。不是nginx、redis等服务是需要创建虚拟用户
    -n 默认情况下,用户的用户组与用户的名称相同
    -s shell 修改用户登入后使用的Shell名称 与useradd -s 功能相同
    -u uid 修改用户的ID值 与useradd -u 功能相同
    -a 追加用户到用户组 仅与-G参数连用
    -l 修改用户账号名称
    -L 锁定用户密码,不让用户改密码
    -U 解除密码锁定

    4、实践操作
    将前面创建的xiezhr 用户的用户注释修改为“测试用户”,UID 修改为888,归属修改为用户组root、xiezhr 成员,其Shell类型为/sbin/nologin,设置家目录为/home/xiezhr 用户过期时间为2022-10-02 ,过期后15天停权

    [root@xiezhr ~]# usermod -u 888 -s /sbin/nologin -c "测试用户" -G root -e "2022/10/02" -f 30 -d /home/xiezhr xiezhr
    [root@xiezhr ~]# grep -w xiezhr /etc/passwd
    xiezhr:x:888:1001:测试用户:/home/xiezhr:/sbin/nologin
    [root@xiezhr ~]# id xiezhr
    uid=888(xiezhr) gid=1001(xiezhr) groups=1001(xiezhr),0(root)
    [root@xiezhr ~]# grep -w xiezhr /etc/shadow
    xiezhr:!!:19233:0:99999:7:30:19267:
    [root@xiezhr ~]# chage -l xiezhr
    Last password change                                    : Aug 29, 2022
    Password expires                                        : never
    Password inactive                                       : never
    Account expires                                         : Oct 02, 2022
    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
    

    userdel 删除用户

    1、简介

    userdel 命令用户删除指定的用户及与该用户相关的文件

    2、语法格式

    userdel [参属选项] [用户名]
    

    3、参数选项

    参数 参数说明
    -f 强制删除用户,即使用户当前登录
    -r 删除用户的同时,删除与用户相关的所有文件

    4、实践操作
    ① 不加参数删除用户

    [root@xiezhr home]# tail -4 /etc/passwd
    xiezhr:x:888:1001:测试用户:/home/xiezhr:/sbin/nologin
    xiezhrspace:x:1002:1002::/home/xiezhrspace:/bin/bash
    xietest:x:908:808::/home/xietest:/bin/bash
    xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin
    [root@xiezhr home]# ll /home/xietest/ -ld
    drwx------ 2 xietest xiezhrgroup 4096 Aug 29 23:16 /home/xietest/
    [root@xiezhr home]# userdel xietest 
    [root@xiezhr home]# grep -w xietest /etc/passwd
    [root@xiezhr home]# ll /home/xietest/ -ld
    drwx------ 2 908 xiezhrgroup 4096 Aug 29 23:16 /home/xietest/
    

    ② 加 -r 参数删除用户及加目录

    [root@xiezhr home]# ls -ld /home/xiezhr001/
    drwx------ 2 xiezhr001 xiezhr001 4096 Sep  4 19:50 /home/xiezhr001/
    [root@xiezhr home]# grep -w xiezhr001 /etc/passwd
    xiezhr001:x:1005:1005::/home/xiezhr001:/bin/bash
    [root@xiezhr home]# userdel -r xiezhr001 
    [root@xiezhr home]# grep -w xiezhr001 /etc/passwd
    [root@xiezhr home]# ls -ld /home/xiezhr001/
    ls: cannot access /home/xiezhr001/: No such file or directory
    

    注意

    • 在实际工作中,尽量不要使用userdel删除用户,只需要在/etc/passwd里注释用户就可以了。
    • 在使用-r参数一定要慎重,-r参数会将家目录下所有文件和目录都删除,该过程是不可逆的

    groupadd 创建新的用户组

    1、简介

    groupadd 用于创建新的用户组。实际工作中一般也不用,因为useradd命令在创建用户的时候也会创建一个同名的用户组

    2、语法格式

    groupadd [参数选项] [用户组]
    

    3、参数选项

    参数 参数说明
    -g gid 指定用户组的gid,除非接-o参数,否则ID值唯一且不为负,如果不指定-g参数,则gid从500开始
    -f 新增一个账户,强制覆盖一个已存在的组账号

    4、实践操作
    指定gid添加用户组

    # 添加GID为123的test1用户组
    [root@xiezhr ~]# groupadd -g 123 test
    [root@xiezhr ~]# tail -l /etc/group
    test:x:123:
    [root@xiezhr ~]# tail -l /etc/gshadow
    test:!::
    

    groupdel 删除用户组

    1、简介

    groupdel 命令用户删除指定的用户组,一般不用

    2、语法格式

    groupdel [用户组]
    

    3、实践操作
    删除test用户组

    [root@xiezhr ~]# groupdel test 
    [root@xiezhr ~]# grep -w test /etc/group
    

    passwd 修改用户密码

    1、简介

    passwd 命令用于修改用户密码及密码过期使劲啊等,工作中会经常用到。
    普通用户和超级用户都可以运行passwd命令,普通用户只能更改自身密码,超级用户root则可以设置或修改所有用户的密码

    2、语法格式

    passwd [参数选项] [用户名]
    

    3、参数选项

    参数 参数说明
    -k 为密码已经过期的用户更新有效期
    -l 锁定用户,被锁定的用户不能登录。仅root用户有此权限
    --stdin 从标准输入读取密码字符串
    -u 解除对用户的锁定,仅root用户有此权限
    -d 删除用户密码,使密码为空。仅root用户有此权限
    -e 是用户密码立即过期,将用户下次登录时强制要求用户修改密码。仅root用户有此权限
    -n 设置修改该密码的最短天数 。仅root用户有此权限
    -x 设置修改密码的最长天数。仅root用户有此权限
    -w 设置用户在密码过期前收到警告信息的天数。仅root用户有此权限
    -i 设置密码过期多少天后禁用账户。仅root用户有此权限
    -S 显示用户密码相关的简单描述。仅root用户有此权限

    4、实践操作
    ① 修改用户自身密码

    [root@xiezhr ~]# passwd                # 修改root用户自身密码
    Changing password for user root.      
    New password:                          # 输入修改的密码,系统不会显示
    Retype new password:                   # 再次输入密码
    passwd: all authentication tokens updated successfully.       # 设置成功了
    

    ② 设置及修改普通用户密码

    [root@xiezhr ~]# passwd xiezhr
    Changing password for user xiezhr.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    

    ③ 显示账号密码信息

    [root@xiezhr ~]# passwd -S xiezhr
    xiezhr PS 2022-09-05 0 99999 7 30 (Password set, MD5 crypt.)
    

    ④一条命令修改密码

    [root@xiezhr ~]# echo "123456"|passwd --stdin xiezhr
    Changing password for user xiezhr.
    passwd: all authentication tokens updated successfully.
    

    ⑤ 设置xiezhr用户7天内不能更改密码,60天以后必须修改密码,过期10天通知用户,过期30天后禁止用户登录

    [root@xiezhr ~]# passwd -n 7 -x 60 -w 10 -i 30 xiezhr
    Adjusting aging data for user xiezhr.
    passwd: Success
    

    chage 修改用户密码有效期

    1、简介

    chage 命令用于查看或修改用户密码有效期

    2、语法格式

    chage [参数选项] [用户名]
    

    3 、参数选项

    参数 参数说明
    -d 设置上一次密码更改的日期
    -E 账号过期的日期。日期格式:YYYY-MM-DD
    -I 设置密码过期多少天后禁用账户
    -l 显示账号有效期信息
    -m 密码可更改的最小天数。默认为0,即任何时候都可以修改
    -M 密码保持有效的最大天数
    -W 密码到期前,提前收到警告信息天数
    4、实践操作
    设置xiezhr用户7天内不能更改密码,60天以后必须修改密码,过期10天通知xiezhr 用户,过期30天后禁止用户登录
    [root@xiezhr ~]# chage -m 7 -M 60 -W 10 -I 30 xiezhr
    

    批量更新用户密码

    1、简介

    chpasswd 命令用于从标准输入中读取一定格式的用户名、密码来批量更新用户的密码,格式为“用户名:密码“

    2、语法格式

    chpasswd [参数选项]
    

    3、参数选项

    参数 参数说明
    -c 默认格式是明文密码,使用-e参数则需要加密的密码
    4、实践操作
    批量修改密码
    [root@xiezhr ~]# chpasswd   # 输入chpasswd后,回车
    xiezhr:123456               # 格式为用户名:密码
    testxiezhr:123456           # 一行一个
    	                        # 新行按Ctrl+D 结束
    

    su 切换用户

    1、简介

    su 命令用户将当前用户切换到指定用户或以指定用户的身份执行命令或程序

    2、语法格式

    su [参数选项] [用户名]
    

    3、参数选项

    参数 参数说明
    -, -l, --login 切换用户的同时,将用户的家目录/系统环境等重新按切换后的用户初始化
    -c 向Shell 传递单个命令

    4、实践操作
    ① 切换到普通用户

    # 切换到testxiezhr用户,不用输入密码即可切换
    [root@xiezhr ~]# su - testxiezhr
    

    ②切换到root用户

    # 虽然已经切换到了root用户,但是家目录还是testxiezhr。环境变量还是testxiezhr用户的,**这种切换问题很严重**
    [testxiezhr@xiezhr ~]$ su root
    Password:                          # 普通用户切换到root用户需要输入密码
    [root@xiezhr testxiezhr]# pwd
    /home/testxiezhr
    # 正确切换方式
    [root@xiezhr testxiezhr]# exit
    exit
    [testxiezhr@xiezhr ~]$ su - root
    Password:                                               # 需要输入密码
    Last login: Mon Sep  5 21:13:39 CST 2022 on pts/3
    [root@xiezhr ~]# pwd
    /root
    

    注意:
    [x] "su 用户名" 虽然能切换到对应用户,但切换后的环境变量信息还是切换之前用户的
    [√] ** ”su - 用户名“ 不但可以切换到对应用户,还能将环境变量一起切换**

    visudo 编辑sudoers文件

    1、简介

    visudo命令是专门用来编辑 /etc/sudoers这个文件的,同时提供语法检查等功能。 /etc/sudoers文件是sudo命令的配置文件。sudo命令在下一个命令你会看到。而为什么不用vi/vim来直接编辑/etc/sudoers文件呢? 因为如果使用vim 编辑sudoer文件时没有语法校验,编辑错了会导致授权无法生效

    2、语法格式

    visudo [参数选项]
    

    3、参数选项

    参数 参数说明
    -c 手动执行语法检查

    4、实践操作
    ①将xiezhr用户提权为root身份,testxiezhr 用户具有添加和删除用户的权限

    # 以下命令相当于 vim /etc/sudoers    进行编辑sudoers文件
    [root@xiezhr ~]# visudo
    
    #在/etc/sudoers 文件中添加如下权限
    xiezhr ALL=(ALL)        ALL                                     # 此行时将xiezhr用户提权为root身份
    testxiezhr ALL=(ALL)     /usr/sbin/useradd, /usr/sbin/userdel   # 授予可以以root身份添加和删除用户权限
    

    上面操作说明

    待授权的用户或组 机器=(授权角色) 可以执行的命令
    testxiezhr ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel

    ② 通过-c参数校验语法是否正确
    通过① 我们已经对xiezhr用户和testxiezhr用户做了不同的授权,那么怎么判断授权的语法是否正确呢

    [root@xiezhr ~]# visudo -c
    /etc/sudoers: parsed OK
    /etc/sudoers.d/90-cloud-init-users: parsed OK
    

    直接root用户下操作不就可以了么?为什么要通过sudo授权呢?
    我们希望一个用户具有root权限去干活,但是又不希望这个用户威胁系统安全。

    sudo 以另一个用户身份执行命令

    1、简介

    sudo 命令可以让普通用户拥有超级用户的权限去执行指定的命令或程序。普通用户不需要知道root密码就可以得到授权,授权我们在上面已经说过

    2、语法格式

    sudo [参数选项]
    

    3、参数选项

    参数 参数说明
    -l 列出当前用户可以执行的命令。只有在sudoers 文件里的用户才能使用该选项
    -h 列出使用方法,并退出
    -H 将环境变量中的HOME(家目录)指定为要变更身份的使用者家目录
    -V 显示版本信息,并退出
    -v sudo在第一次执行时,或者在N分钟内没有执行,则会询问密码,参数用于重新做一次确认
    -u 以指定用户的身份执行命令
    -k 清除时间戳上的实践,下次再次使用sudo时要再此输入密码
    -K 与k类似,同时还删除时间戳文件
    -b 在后台执行指定命令
    -p 更改询问密码时的提示语
    -e 不执行命令,而是修改文件,相当于sudo edit

    4、sudo 工作原理
    sudo工作原理

    5、实践操作
    创建一个testuser 用户,并对testuser进行sudo授权管理。授权完成后sudo操作

    # 1、创建testuser 用户
    [root@xiezhr ~]# useradd testuser
    # 2、将testuser 用户密码修改为******
    [root@xiezhr ~]# passwd testuser
    Changing password for user testuser.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    # 3、执行以下命令后添加 `testuser ALL=(ALL)        ALL  ` 对testuser用户进行sudo授权 参照下图
    [root@xiezhr ~]# visudo
    testuser ALL=(ALL)        ALL
    # 4、登录testuser 用户,查看 当前用户被授予的sudo权限集合
    [testuser@xiezhr ~]$ sudo -l
    Matching Defaults entries for testuser on xiezhr:
        !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
        env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
        env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
        secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User testuser may run the following commands on xiezhr:
        (ALL) ALL
    
    # 5、登录testuser用户,执行ls /root 发现时没有权限的
    [testuser@xiezhr ~]$ ls /root
    ls: cannot open directory /root: Permission denied
    # 6、当加上sudo 后 再执行ls /root (第一次需要输入testuser用户密码,上面原理图介绍过),发现可以访问/root 路径了,此时testuser 具有了
    [testuser@xiezhr ~]$ sudo ls /root
    
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
        #1) Respect the privacy of others.
        #2) Think before you type.
        #3) With great power comes great responsibility.
    
    [sudo] password for testuser: 
    bdcdb84c414c2493e5856597b89be9f0.gif
    

    6、 sudo 小结

    • 对用户进行sudo授权后,所有用户执行命令 格式为 sudo + [命令]
    • sudo - l 命令可以查看当前用户被授予的sudo权限集合
    • 当我们在授权用户下执行sudo时,如果需要输入密码。此时输入密码是当前用户的密码

    id 显示用户与用户组信息

    1、简介

    id 命令可以显示指定用户的ID(UID)和组ID(GID)等有效信息

    2、语法格式

    id [参数选项] [用户名]
    

    3、参数选项

    参数 参数说明
    -g 显示用户所属群组的ID
    -G 显示用户所属附加群组的ID
    -n 显示用户,所属群组或附加群组的名称
    -r 显示实际ID
    -u 显示用户ID

    4、实践操作
    显示用户的UID和GID

    # id 后不跟用户,默认时当前登录用户
    [root@xiezhr home]# id
    uid=0(root) gid=0(root) groups=0(root)
    # 显示指定用户信息
    [root@xiezhr home]# id testxiezhr
    uid=1006(testxiezhr) gid=1006(testxiezhr) groups=1006(testxiezhr)
    # 显示当前登录用户名称
    [root@xiezhr home]# id -gn
    root
    # 显示当前登录用户GID
    [root@xiezhr home]# id -g
    0
    # 显示当前登录用户UID
    [root@xiezhr home]# id -u
    0
    
    

    w 显示已登录用户信息

    1、简介

    w命令可以显示已经登录系统的用户,并显示用户正在执行的命令

    2、语法格式

    w [参数选项] [用户]
    

    3、参数选项

    参数 参数说明
    -h 不显示前两行标题信息
    -u 忽略执行程序的名称以及CPU时间信息
    -s 使用短输出格式

    4、实践操作
    ① 显示已登录用户信息

    [testuser@xiezhr ~]$ w
     21:21:42 up 609 days, 7 min,  4 users,  load average: 2.66, 2.99, 3.17
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    39.130.60.62     20:33   48:22   0.02s  0.02s -bash
    root     pts/1    39.130.60.62     20:55   13:10   0.07s  0.02s -bash
    root     pts/2    39.130.60.62     21:04   16:54   0.02s  0.02s -bash
    root     pts/3    39.130.60.62     21:21    6.00s  0.04s  0.00s w
    

    w命令执行结果说明

    • 第一行依次显示当前的系统时间、系统从启动到现在已经运行的时间、登录到系统中的用户数和系统平均负载
    列名 含义
    USER 登录系统的用户
    TTY 用户使用的TTY名称
    FROM 用户从哪里登录进来,一般显示远程登录主机的IP地址或主机名
    LOGIN@ 用户登录的日期和时间
    IDLE 显示终端空闲的时间
    JCPU 表示该终端上的所有进程及子进程使用系统的总时间
    PCPU 当前活动进程使用的系统时间
    WHAT 当前用户执行的进程名称和选项

    ② -h 参数

    [root@xiezhr ~]# w -h
    root     pts/0    39.130.60.62     20:33    1:04m  0.02s  0.02s -bash
    root     pts/1    39.130.60.62     20:55   28:55   0.07s  0.02s -bash
    root     pts/2    39.130.60.62     21:04   32:39   0.02s  0.02s -bash
    root     pts/3    39.130.60.62     21:21   15:51   0.04s  0.02s -bash
    root     pts/4    39.130.60.62     21:37    3.00s  0.02s  0.00s w -h
    

    显示已登录用户信息

    1、简介

    who 命令用于显示已经登录系统的用户,以及系统的启动时间等信息

    2、语法格式

    who [参数选项]
    

    3、参数选项

    参数 参数说明
    -a 显示所有信息
    -b 显示系统启动时间
    -d 显示已结束的进程
    -H 显示标题,默认是不显示的
    -l 显示登录进程

    4、实践操作
    ① 不带参数显示所有信息

    [root@xiezhr ~]# who
    root     pts/0        2022-09-11 20:33 (39.130.60.62)
    root     pts/1        2022-09-11 20:55 (39.130.60.62)
    root     pts/2        2022-09-11 21:04 (39.130.60.62)
    root     pts/3        2022-09-11 21:21 (39.130.60.62)
    root     pts/4        2022-09-11 21:37 (39.130.60.62)
    root     pts/5        2022-09-11 22:19 (39.130.60.62)
    

    ② 显示系统启动时间

    [root@xiezhr ~]# who -b
             system boot  2021-01-10 21:14
    

    ③ 显示已结束的进程

    [root@xiezhr ~]# who -d
    

    ④ 显示标题

    [root@xiezhr ~]# who -H
    NAME     LINE         TIME             COMMENT
    root     pts/0        2022-09-11 20:33 (39.130.60.62)
    root     pts/1        2022-09-11 20:55 (39.130.60.62)
    root     pts/2        2022-09-11 21:04 (39.130.60.62)
    root     pts/3        2022-09-11 21:21 (39.130.60.62)
    root     pts/4        2022-09-11 21:37 (39.130.60.62)
    root     pts/5        2022-09-11 22:19 (39.130.60.62)
    

    ⑤ 显示带标题的所有信息

     [root@xiezhr ~]# who -H -a
    NAME       LINE         TIME             IDLE          PID COMMENT  EXIT
               system boot  2021-01-10 21:14
               run-level 3  2021-01-10 21:14
    LOGIN      ttyS0        2021-01-10 21:14              1009 id=tyS0
    LOGIN      tty1         2021-01-10 21:14              1008 id=tty1
    root     + pts/0        2022-09-11 20:33 01:50       23396 (39.130.60.62)
    root     + pts/1        2022-09-11 20:55 01:15       27638 (39.130.60.62)
    root     + pts/2        2022-09-11 21:04 01:19       29660 (39.130.60.62)
    root     + pts/3        2022-09-11 21:21 01:02         405 (39.130.60.62)
    root     + pts/4        2022-09-11 21:37 00:46        3587 (39.130.60.62)
    root     + pts/5        2022-09-11 22:19   .         11675 (39.130.60.62)
    

    以上显示的各项含义

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

    列名 说明
    NAME 名称: 用户登录名
    状态:表示线路对用户是否都是可写的
    LINE 线路: pts/0 pts/1等等
    TIME 时间:用户登录系统的时间
    IDLE 活动:某用户最后一次活动到现在的时间;. 表示一分钟内线路活动
    PID 进程表示:用户进程id
    COMMENT 主机名

    users 显示已登录用户

    1、简介

    users 命令用于显示已经登录的用户。一个用户登录多次则会显示多次

    2、实践操作

    [root@xiezhr ~]# users
    root root root root root root
    

    whoami 显示当前登录的用户

    1、简介

    whoami 命令用于显示当前登录的用户。是英文who am i 的简写

    2、实践操作

    [root@xiezhr ~]# whoami
    root
    [root@xiezhr ~]# su - testuser
    Last login: Sun Sep 11 21:21:40 CST 2022 on pts/3
    [testuser@xiezhr ~]$ whoami
    testuser
    

    last 显示用户登录列表

    1、简介

    last命令用于显示最近登录的用户列表

    2、语法格式

    last [参数选项]
    

    3、参数选项

    参数 参数说明
    - num 指定显示结果的行数

    4、实践操作
    ① 不加参数显示

    [root@xiezhr ~]# last
    root     pts/6        39.130.60.62     Sun Sep 11 22:42   still logged in   
    root     pts/0        39.130.60.62     Sun Sep 11 22:37   still logged in 
    root     pts/1        39.130.60.29     Sun Nov 29 09:09 - down   (01:02)    
    root     pts/0        39.130.60.29     Sun Nov 29 08:49 - down   (01:23)    
    root     pts/0        112.112.17.172   Fri Nov  6 12:50 - 15:45  (02:55)    
    
    wtmp begins Fri Nov  6 12:50:41 2020
    

    ② -num 参数,显示指定显示行数

    [root@xiezhr ~]# last -5
    root     pts/6        39.130.60.62     Sun Sep 11 22:42   still logged in   
    root     pts/0        39.130.60.62     Sun Sep 11 22:37   still logged in   
    root     pts/5        39.130.60.62     Sun Sep 11 22:19   still logged in   
    root     pts/4        39.130.60.62     Sun Sep 11 21:37   still logged in   
    root     pts/3        39.130.60.62     Sun Sep 11 21:21   still logged in   
    
    wtmp begins Fri Nov  6 12:50:41 2020
    

    lastb 显示用户登录失败的记录

    1、简介

    lastb命令用于显示用户登录失败的记录

    2、语法格式

    lastb [参数选项]
    

    3、参数说明

    参数 参数说明
    -num 指定显示结果的行数
    4、实践操作
    [root@xiezhr ~]# lastb -5
             ssh:notty    159.75.56.103    Sun Sep 11 21:18 - 21:18  (00:00)    
    ltecl4r0 ssh:notty    45.141.84.126    Sun Sep 11 20:33 - 20:33  (00:00)    
    ltecl4r0 ssh:notty    45.141.84.126    Sun Sep 11 20:33 - 20:33  (00:00)    
    1admin0  ssh:notty    45.141.84.126    Sun Sep 11 20:32 - 20:32  (00:00)    
    1admin0  ssh:notty    45.141.84.126    Sun Sep 11 20:32 - 20:32  (00:00)    
    
    btmp begins Thu Sep  1 03:31:03 2022
    

    lastlog 显示所有用户最近登录记录

    1、简介

    lastlog 命令用于显示用户最近登录的记录,便于查看系统是否异常

    2、实践操作

    [root@xiezhr ~]# lastlog
    Username         Port     From             Latest
    root             pts/6                     Sun Sep 11 22:45:57 +0800 2022
    bin                                        **Never logged in**
    daemon                                     **Never logged in**
    adm                                        **Never logged in**
    lp                                         **Never logged in**
    test                                       **Never logged in**
    testxiezhr       pts/0                     Thu Sep  8 21:53:58 +0800 2022
    testuser         pts/6                     Sun Sep 11 22:42:24 +0800 2022
    

    注意:
    当有从不登录的用户突然登录系统了,就要考虑是不是有用户入侵系统了

    这期内容就到这,下期根据思维导图就到Linux磁盘与文件系统相关命令的使用了。
    涉及到的命令有: fdisk、df、mount、dd、unmount、sync、等等
    敬请期待哦(●’◡’●)

    专栏目录:快速上手Linux核心命令专栏目录

    上一篇:快速上手Linux核心命令(十一):Linux安装软件
    下一篇:快速上手Linux核心命令(十二):磁盘与文件系统相关命令(博主正在玩命更新中)

  • 相关阅读:
    独孤九剑第四式-K近邻模型(KNN)
    vue里el-form+el-table实现验证规则的写法
    Java内存模型(JMM)
    C++DAY10 结构体·结构体指针
    面试汇总:这是一份全面&详细的Android面试指南
    编程思维是一种什么思维?
    记录--JavaScript原型和原型链复习笔记
    Android studio中如何下载sdk
    你可得知道物理地址与IP地址
    工具分享:在线键盘测试工具
  • 原文地址:https://www.cnblogs.com/xiezhr/p/17343430.html