快速上手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核心命令(十二):磁盘与文件系统相关命令(博主正在玩命更新中)

原文链接:https://www.cnblogs.com/xiezhr/p/17343430.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:快速上手Linux核心命令(十一):Linux用户相关命令 - Python技术站

(0)
上一篇 2023年5月5日
下一篇 2023年5月7日

相关文章

  • win10下linux子系统安装及卸载

    参考资料: https://linux.cn/article-7209-1.html https://msdn.microsoft.com/en-us/commandline/wsl/reference 1、确认“开发人员模式”为启用状态 依次在“设置”-“更新与安全”-“针对开发人员”选项中,启用开发人员模式 2、确认“Windows Subsystem …

    Linux 2023年4月11日
    00
  • linux下使用多线程编写的聊天室

      自从开始学linux网络编程后就想写个聊天室,一开始原本打算用多进程的方式来写,可是发觉进程间的通信有点麻烦,而且开销也大,后来想用多线程能不能实现呢,于是便去看了一下linux里线程的用法,实际上只需要知道 pthread_create 就差不多了,于是动手开干,用了两天时间,调试的过程挺痛苦的,一开始打算用纯C来撸,便用简单的数组来存储客户端的连接信…

    Linux 2023年4月13日
    00
  • 自制YUM仓库的步骤讲解

    下面是详细的自制YUM仓库步骤攻略: 1. 安装HTTPD服务器 首先需要安装HTTPD服务器,使用以下命令安装: yum install httpd -y 确认安装成功,启用HTTPD服务,并设置开机自启动: systemctl start httpd.service systemctl enable httpd.service 2. 创建本地yum软件仓…

    Linux 2023年5月14日
    00
  • 如何在Linux系统上设置文件和目录权限?

    在Linux系统中,文件和目录的权限可以使用chmod命令进行设置,该命令可以设置文件和目录的所有者权限、所属组权限和其他用户的权限。具体操作步骤如下: 1. 查看文件和目录权限 在执行文件和目录权限设置之前,我们需要先查看当前文件或目录的权限。使用ls命令可以列出当前目录下的所有文件和目录以及其权限: ls -l filename 其中,-l选项表示以长格…

    Linux 2023年4月19日
    00
  • Linux apachectl命令

    以下是“Linux apachectl命令”的完整使用攻略,包含两个示例说明。 步骤 打开终端并输入以下命令以启动Apache服务器: bash sudo apachectl start 这将启动Apache服务器并开始监听传入HTTP请求。 如果您想停止Apache,请使用命令: bash sudo apachectl stop 这将停止Apache服务器…

    Linux 2023年5月12日
    00
  • JSP安全性初探

    JSP安全性初探 JSP是JavaWeb应用程序中重要的组成部分,与Java代码共同构建Web应用程序。JSP的优势在于可以集成Java代码和HTML标记语言,具有强大的灵活性和可扩展性。然而,正是因为JSP具有这些灵活性和可扩展性,安全问题成为JSP开发人员不可忽视的警示。 JSP安全性问题 JSP的安全问题与其他Web技术的安全问题类似,主要包括以下几个…

    Linux 2023年5月14日
    00
  • Redhat linux DNS配置指南(SCANIP配置手册)

    在oracle 11g的RAC中增加了SCAN IP,而使用 SCAN IP的一种方式就是使用DNS,这里介绍在Redhat Linux 5.4中DNS的详细配置操作在配置DNS之前修改主机名Redhat linux 5.4 DNS配置操作在配置DNS之前修改主机名 [root@beiku1 etc]# hostname beiku1.sbyy.com [r…

    Linux 2023年4月11日
    00
  • 16、文件操作系统入门基本概念 Linux内核笔记–深入理解文件描述符

    1、文件管理系统   在大多数应用中,文件是一个核心成分,处理实时应用和一些特殊的应用外,应用程序的输入都是通过文件的形式来完成的,实际上,所有应用程序的输出都保存在文件中,这便于信息的长期存储,也便于用户将来通过应用程序访问信息。   数据或者文件归根结底是存储于物理内存空间上的,操作系统可以通过文件系统方便的管理磁盘上的文件,Linux的文件系统模型如下…

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部