跟着大佬学习云计算第六天,手把手教学,只需十分钟让你彻底明白Linux系统用户与组管理(图文详解、附代码)

Linux用户与组管理

目录

Linux用户与组管理

一、用户与组概述

1、用户类型

2、用户和用户组关系

3、用户和用户组配置文件

二、用户管理

1、useradd命令

2、userdel

3、passwd命令

4、usermod命令

5、chpasswd命令

6、chage命令

三、组管理

1、groupadd命令

2、groupdel命令

3、groupmod命令

4、gpasswd命令

四、用户切换与sudo提权

1、su命令

2、sudo命令

五、用户登录信息查看

1、id命令

2、w命令

3、who命令

4、whoami命令

5、finger命令

6、last命令

7、lastb命令

8、lastlog命令


一、用户与组概述

与windows类似,Linux也有用户和用户组的概念。在Linux系统中,每次登录系统都必须以一个用户的身份登录,并且登录后的权限也会根据用户身份来确定。 每一个进程在执行时,也会有其用户,该用户也和进程所能控制的资源有关。Linux系统下的每一个目录、文件,都会有其属于的用户和用户组,我们称其为属主和属组。由此可见,用户和用户组与Linux系统的运行息息相关。在实际操作使用系统时,我们往往较多关注用户与用户组。

在Linux系统中,每个用户都有自己的用户ID,称为UID,每个用户组也有自己的用户组ID,称为GIDUID和GID在Linux系统中是不可重复的。Linux系统就是通过UID和GID来对用户和组进行管理的,而对于管理员来说,往往会设置用户名和组名,这样使得用户和用户组的使用管理更人性化。

1、用户类型

  • root用户

root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经存在的用户,只有root可以为普通用户修改密码等等。

  • 系统用户 (程序用户)

系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999

  1. 程序用户没有家目录

  2. nolongin 不能用shell登录

  • 普通用户

普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。

2、用户和用户组关系

在Linux系统中,每个用户必定属于一个主组(基本组),默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。

3、用户和用户组配置文件

Linux系统下用户和用户组相关的配置文件主要有以下几个:

  • /etc/passwd

存储用户信息

 tail -1 /etc/passwd
 user10:x:1014:1014::/home/user10:/bin/bash
 #用户名:密码占位符:用户ID:组ID:用户描述信息:用户家目录:登录shell
  • /etc/shadow

该配置文件保存了用户的密码信息 。

tail -1 /etc/shadow
 user2:!!:19522:0:99999:7:::
 #用户名:密码:用户创建时间:密码最短使用期限:密码最长使用期限:密码过期提醒时间:密码过期后的宽容时间:密码过期时间:没用

注意: !! 表示该用户没有设置密码。

! 表示用户密码被锁定,该用户无法登录操作系统。

  • /etc/group

该文件保存了用户组的信息 。

 tail -1 /etc/group
 nginx:x:982:
 #组名:占位符:组ID:非基本组的组成员
  • /etc/gshadow

该文件保存了用户组的密码。

  • /etc/login.defs

该文件可以设置密码过期时间,密码最大长度限制等内容。影响的是新创建的用户密码信息。

[root@ansible ~]# cat /etc/login.defs 
 #
 # Please note that the parameters in this configuration file control the
 # behavior of the tools from the shadow-utils component. None of these
 # tools uses the PAM mechanism, and the utilities that use PAM (such as the
 # passwd command) should therefore be configured elsewhere. Refer to
 # /etc/pam.d/system-auth for more information.
 #
 ​
 # *REQUIRED*
 #   Directory where mailboxes reside, _or_ name of file, relative to the
 #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
 #   QMAIL_DIR is for Qmail
 #
 ​
 #QMAIL_DIR  Maildir
 MAIL_DIR    /var/spool/mail
 #MAIL_FILE  .mail
 ​
 # Password aging controls:
 #
 #   PASS_MAX_DAYS   Maximum number of days a password may be used.
 #   PASS_MIN_DAYS   Minimum number of days allowed between password changes.
 #   PASS_MIN_LEN    Minimum acceptable password length.
 #   PASS_WARN_AGE   Number of days warning given before a password expires.
 #
 PASS_MAX_DAYS   99999
 PASS_MIN_DAYS   0
 PASS_MIN_LEN    5
 PASS_WARN_AGE   7
 ​
 #
 # Min/max values for automatic uid selection in useradd
 #
 UID_MIN                  1000
 UID_MAX                 60000
 # System accounts
 SYS_UID_MIN               201
 SYS_UID_MAX               999
 ​
 #
 # Min/max values for automatic gid selection in groupadd
 #
 GID_MIN                  1000
 GID_MAX                 60000
 # System accounts
 SYS_GID_MIN               201
 SYS_GID_MAX               999
 ​
 #
 # If defined, this command is run when removing a user.
 # It should remove any at/cron/print jobs etc. owned by
 # the user to be removed (passed as the first argument).
 #
 #USERDEL_CMD    /usr/sbin/userdel_local
 ​
 #
 # If useradd should create home directories for users by default
 # On RH systems, we do. This option is overridden with the -m flag on
 # useradd command line.
 #
 CREATE_HOME yes
 ​
 # The permission mask is initialized to this value. If not specified, 
 # the permission mask will be initialized to 022.
 UMASK           077
 ​
 # This enables userdel to remove user groups if no members exist.
 #
 USERGROUPS_ENAB yes
 # Use SHA512 to encrypt password.
 ENCRYPT_METHOD SHA512
 ​
 ​
 ​
 [root@localhost ~]# cat /etc/login.defs | grep -v "^$" | grep -v "^#"
 MAIL_DIR        /var/spool/mail
 PASS_MAX_DAYS   99999
 PASS_MIN_DAYS   0
 PASS_MIN_LEN    5
 PASS_WARN_AGE   7
 UID_MIN                  1000
 UID_MAX                 60000(653500)
 SYS_UID_MIN               201
 SYS_UID_MAX               999
 GID_MIN                  1000
 GID_MAX                 60000
 SYS_GID_MIN               201
 SYS_GID_MAX               999
 CREATE_HOME     yes
 UMASK           077(权限反码)
 USERGROUPS_ENAB yes
 ENCRYPT_METHOD SHA512
 
  • /etc/skel目录

作用: 用户创建时默认文件的模版目录

[root@c2407 skel]# ls -a
 .  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
文件触发时机主要用途典型操作场景
.bash_logout用户注销时清理、日志记录记录注销时间、删除临时文件
.bash_profile全局配置文件登录Shell启动时环境变量、全局启动程序设置 PATH、启动 ssh-agen`
.bashrc加载的时差新终端窗口打开时别名、函数、Shell选项定义 alias ll='ls -la'
.mozillFirefox首次运行时创建浏览器用户数据存储备份配置、管理扩展

二、用户管理

1、useradd命令

创建一个新用户或更新默认新用户信息

语法:

useradd [选项] 用户名

选项:

选项作用
-u指定用户的UID。
-d指定用户的家目录,而不采用默认创建在/home中的目录。不能是已存在的目录。
-s指定用户的登录shell
-M创建用户时不创建家目录
-g创建用户时指定基本组,不会创建用户的同名组
-G创建用户时指定附加组,依然会创建同名组
-e创建用户时,指定用户的失效时间。

案例:

1、指定用户的UID

useradd -u 54321 user1
 ​
 创建UID为0的admin用户 :具有管理员权限
 usreadd -o -u 0 admin
 ​

2、指定用户家目录

useradd -d /user2 user2

3、指定用户的登录shell

useradd -s /sbin/nologin user3
 ​
 指定用户user5登录/bin/tcsh
 [root@localhost ~]# useradd -s /bin/tcsh user5
 [root@localhost ~]# cat /etc/passwd
 user3:x:54359:54359::/home/user3:/bin/bash
 user2:x:54360:54321::/home/user2:/bin/bash
 user4:x:54361:54361::/home/user4:/bin/bash
 user5:x:54362:54362::/home/user5:/bin/tcsh

4、创建用户时不创建家目录

useradd -M user4

5、创建程序用户

useradd -M -s /sbin/nologin user5

6、创建用户时指定基本组

 useradd -g user5 user6

7、创建用户时指定附加组

useradd -G user5 user7
 ​
 创建user4指定附加组user1
 root@localhost ~]# useradd -G user1 user4
 root@localhost ~]# id user4
 uid=54361(user4) gid=54361(user4) 组=54361(user4),54321(user1)

8、创建用户时,指定用户的失效时间。

useradd -e 2024-04-08 user8
 #验证:
 tail -1 /etc/shadow
 user8:!!:19820:0:99999:7::19821:
 ​
 [root@localhost ~]# useradd user6 -e 2025-05-16
 user5:!!:20223:0:99999:7:::
 user6:!!:20223:0:99999:7::20224:

2、userdel

删除用户账户和相关文件

语法:

userdel [选项] 用户名

选项:

选项作用
-r, --remove用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。

案例:

删除用户的同时删除在创建时产生的文件。

 userdel -r user7
 直接用useradd删除,要删除家目录home和邮件文件/var/spool/mail的信息
 [root@localhost ~]# userdel user1
 userdel:组“user1”没有移除,因为它包含其它成员。
 [root@localhost ~]# cat /etc/group
 user:x:1000:user
 user1:x:54321:user4
 kobe:x:54322:
 kevin:x:54323:
 alpha:x:54324:
 alpha2:x:54325:
 tom:x:54326:
 hhh:x:54327:
 kk:x:54328:
 user3:x:54359:
 user4:x:54361:
 user5:x:54362:
 user6:x:54363:
 [root@localhost ~]# cd /home/
 [root@localhost home]# ls
 tom  user  user1  user2  user3  user4  user5  user6
 [root@localhost home]# userdel user1
 userdel:用户“user1”不存在
 [root@localhost home]# ls -l 
 总用量 4
 drwx------.  3 tom   tom     78 5月  15 13:42 tom
 drwx------. 15 user  user  4096 5月  11 01:01 user
 drwx------.  3 54321 54321   78 5月  14 20:44 user1
 drwx------.  3 54360 54321   78 5月  15 14:03 user2
 drwx------.  3 user3 user3   78 5月  15 14:01 user3
 drwx------.  3 54361 54361   78 5月  15 14:05 user4
 drwx------.  3 user5 user5   78 5月  15 14:10 user5
 drwx------.  3 user6 user6   78 5月  15 14:17 user6
 [root@localhost home]# cd
 [root@localhost ~]# useradd user1
 useradd:警告:此主目录已经存在。
 不从 skel 目录里向其中复制任何文件。
 正在创建信箱文件: 文件已存在
 [root@localhost ~]# cd /var/spool/mail
 [root@localhost mail]# ls -l
 总用量 0
 -rw-rw----. 1 alpha  mail 0 5月  14 20:55 alpha
 -rw-rw----. 1 alpha2 mail 0 5月  14 20:55 alpha2
 -rw-rw----. 1 hhh    mail 0 5月  15 13:46 hhh
 -rw-rw----. 1 kevin  mail 0 5月  14 20:55 kevin
 -rw-rw----. 1 kk     mail 0 5月  15 13:51 kk
 -rw-rw----. 1 kobe   mail 0 5月  14 20:48 kobe
 -rw-rw----. 1 rpc    mail 0 5月  11 07:56 rpc
 -rw-rw----. 1 tom    mail 0 5月  15 13:42 tom
 -rw-rw----. 1 user   mail 0 5月  11 08:16 user
 -rw-rw----. 1  54321 mail 0 5月  14 20:44 user1
 -rw-rw----. 1  54360 mail 0 5月  15 14:03 user2
 -rw-rw----. 1 user3  mail 0 5月  15 14:01 user3
 -rw-rw----. 1  54361 mail 0 5月  15 14:05 user4
 -rw-rw----. 1 user5  mail 0 5月  15 14:10 user5
 -rw-rw----. 1 user6  mail 0 5月  15 14:17 user6
 [root@localhost mail]# rm -rf user1

3、passwd命令

更改用户的密码。root用户使用时,可以更改所有用户的密码。普通用户使用时,只能更改本身的密码。

语法:

 passwd [选项] 用户名

选项:

选项作用
-l(小写L), --lock锁定用户密码。
-S查看密码的锁定状态 (创建新用户没设置密码显示密码已锁定)
-u,--unlock解除用户密码的锁定状态
-d, --delete将用户密码清空
-e,--expire直接让密码失效,下次登录时必须更改。
--stdin 标准输入非交互式修改密码。

案例:

1、设置用户密码

 passwd user9
 #用户输入passwd命令后直接回车,表示更改本身的密码。

2、锁定用户密码

 passwd -l user6
 锁定用户 user6 的密码 。
 passwd: 操作成功
 #验证
  tail -1 /etc/shadow
 user9:!!$6$nc2k.H5O$QBVprPO4.3MoiiY90n/Yapu0YpR72sVonaR0CKuolRzYBdX9.yzW/Boq5EcQItlPSdaGF2kp5czU.xKSDHr59/:19820:0:99999:7:::

3、查看密码的锁定状态

passwd -S user9
 user9 LK 2024-04-07 0 99999 7 -1 (密码已被锁定。)
 ​
 [root@localhost ~]# passwd -l user2
 锁定用户 user2 的密码 。
 passwd: 操作成功

4、解除密码的锁定状态

passwd -u user9
 解锁用户 user9 的密码。
 passwd: 操作成功
 ##验证
 passwd -S user9
 user9 PS 2024-04-07 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
 ​
 [root@localhost ~]# passwd -u user2
 解锁用户 user2 的密码。
 passwd: 操作成功
 

5、清空用户密码

passwd -d user9
 清除用户的密码 user9。
 passwd: 操作成功
 ##验证
 tail -1 /etc/shadow
 user9::19820:0:99999:7:::
 ​
 [root@localhost ~]# passwd -d user2
 清除用户的密码 user2。
 passwd: 操作成功
 [root@localhost ~]# passwd -S user2
 user2 NP 2025-05-15 0 99999 7 -1 (密码为空。)

6、强制密码失效

passwd -e  user9
 正在终止用户 user9 的密码。
 passwd: 操作成功
 ​
 [root@localhost ~]# passwd -e user3
 正在终止用户 user3 的密码。
 passwd: 操作成功
 

7、非交互式修改用户密码

echo 1 | passwd --stdin user9
 ​
 [root@localhost ~]# echo 1 | passwd --stdin user2
 更改用户 user2 的密码 。
 passwd:所有的身份验证令牌已经成功更新。

4、usermod命令

修改一个用户账户的属性。

语法:

usermod [选项] 用户名

选项:

选项作用
-u修改用户的UID。
-d修改用户的家目录,而不采用默认创建在/home中的目录。
-s修改用户的登录shell
-g修改用户基本组
-G修改用户附加组
-e修改用户的失效时间。
-a, --append追加用户到一个附加组
-L, --lock锁定用户
-U, --unlock解锁用户

案例:

1、锁定用户

usermod -L user1

2、解锁账户

 usermod -U user1

3、追加附加组

#将用户user2附加到用户组user1里面
 [root@localhost ~]# id user1
 uid=1001(user1) gid=1001(user1) 组=1001(user1)
 [root@localhost ~]# id user2
 uid=1002(user2) gid=1002(user2) 组=1002(user2)
 [root@localhost ~]# usermod -a user2 -G user1
 [root@localhost ~]# id user2
 uid=1002(user2) gid=1002(user2) 组=1002(user2),1001(user1)

4、更改基本组

 #将用户将用户user2基本组,添加到用户组user3里面
 [root@localhost ~]# usermod -g user3 user2
 [root@localhost ~]# id user2
 uid=1002(user2) gid=1003(user3) 组=1003(user3),1001(user1)

5、chpasswd命令

批量更新密码。

语法: 

chpasswd [选项]

选项:

选项作用

案例:

批量修改用户密码

 #创建用户密码的文本文件
 vim chpasswd.txt
 user1:123.com
 user2:1234.com
 user3:12345.com
 #修改密码
 cat chpasswd.txt | chpasswd
 ​
 #用户user1、user2、user3.批量设置密码
 [root@localhost ~]# cat passwd.txt
 user1:123.com
 user2:1234.com
 user3:12345.com
 [root@localhost ~]# cat passwd.txt | chpasswd
 user:$6$1Csm8YTR7Qa3WcOK$qzDJKnbfnqoNKdw7JPLsQb27jwpxXS05IV1Dzo/NHqoceVre5zil3dtK0MAT7jpeDIqvo.OrPmJU0Bl9qM8XD/::0:99999:7:::
 user1:$6$NfBs0oxUFA/a$ZaKrJbROOWM4iUTYbiiYhTXbfw2Ki0mxN6FkX1N05QE8pNEcKuU3tpXzo8cJi4aORSdfzhdadwdk365VHPxOo0:20223:0:99999:7:::
 user2:$6$twVrX/.0M$mVXypcvxxLG3QdNIdO5uAW/inVWoCvyRH/if3UBh0pJd2oYguVk2P5fcMSOsAOrPss/yCVQ4ug9CL0bWcLGek/:20223:0:99999:7:::
 user3:$6$7OgqQ3RR0L/tkJ$dbHdme7OLtgA/3k/Lca5riMmXpO8o/ibQqV6q0sWnUw7sFkLKSIGmhTsKK56nynD6tPmszeldTdqaeorJnoH9/:20223:0:99999:7:::

6、chage命令

更改用户密码过期信息,影响现有用户

语法:

chage [选项] 用户名

选项:

选项作用
-l, --list显示账户年龄信息
-m, --mindays修改密码的最短使用期限
-M, --maxdays修改密码的最长使用期限
-W, --warndays修改密码过期的提示时间

案例:

1、查看用户的密码信息

[root@localhost ~]# chage -l user1
 最近一次密码修改时间                            :5月 15, 2025
 密码过期时间                                   :从不
 密码失效时间                                   :从不
 帐户过期时间                                   :从不
 两次改变密码之间相距的最小天数          :0
 两次改变密码之间相距的最大天数          :99999
 在密码过期之前警告的天数        :7
 ​

2、修改密码最短使用期限

[root@localhost ~]# chage -m 2 user1
 [root@localhost ~]# chage -l user1
 最近一次密码修改时间                                    :5月 15, 2025
 密码过期时间                                    :从不
 密码失效时间                                    :从不
 帐户过期时间                                            :从不
 两次改变密码之间相距的最小天数          :2
 两次改变密码之间相距的最大天数          :99999
 在密码过期之前警告的天数        :7
 ​

三、组管理

1、groupadd命令

创建新组

语法:

groupadd [选项] 组名

选项:

选项作用
-g, --gid GID指定 GID

案例:

创建新组

[root@localhost ~]# groupadd -g 12345 newgroup
 ​
 [root@localhost ~]# groupadd hhhh
 [root@localhost ~]# tail /etc/group
 tcpdump:x:72:
 user:x:1000:user
 user1:x:1001:user2
 user2:x:1002:
 user3:x:1003:
 hhhh:x:1004:

将用户添加为组成员

#将用户user1添加到用户组hhhh
 [root@localhost ~]# usermod -a user1 -G hhhh
 [root@localhost ~]# id user1
 uid=1001(user1) gid=1001(user1) 组=1001(user1),1004(hhhh)
 [root@localhost ~]# tail -5 /etc/group
 user:x:1000:user
 user1:x:1001:user2
 user2:x:1002:
 user3:x:1003:
 hhhh:x:1004:user1

2、groupdel命令

删除组,有成员不能删除

语法:

groupdel [选项] 组名

选项:

选项作用
-f强制删除,但不建议

案例:

删除组

[root@localhost ~]# groupdel newgroup

3、groupmod命令

语法:

groupmod [选项] 组名

选项:

选项作用
-g, --gid GID修改GID

案例:

修改组的GID

[root@localhost ~]# groupmod -g 54321 user1

4、gpasswd命令

向组内添加成员

语法:

gpasswd [选项] 组名

选项:

选项作用
-a, --add USER向组 GROUP 中添加用户 USER,单个添加
-M, --members USER,...设置组 GROUP 的成员列表,批量添加,覆盖原有成员

案例:

1)、单个添加

[root@localhost ~]# gpasswd -a user2 hhhh
 正在将用户“user2”加入到“hhhh”组中
 [root@localhost ~]# tail -5 /etc/group
 user:x:1000:user
 user1:x:1001:user2
 user2:x:1002:
 user3:x:1003:
 hhhh:x:1004:user1,user2

2)、批量添加

[root@localhost ~]# gpasswd -M user3,user4,user5 root
 [root@localhost ~]# cat /etc/group | grep root
 root:x:0:user3,user4,user5
 ​
 #将用户user3,user3批量加入用户组hhhh
 [root@localhost ~]# gpasswd -M user3,user4 hhhh
 [root@localhost ~]# tail -5 /etc/group
 user1:x:1001:user2
 user2:x:1002:
 user3:x:1003:
 hhhh:x:1004:user3,user4
 user4:x:1005:
 

四、用户切换与sudo提权

1、su命令

切换用户,从root用户切换到普通用户不需要密码。普通用户之间切换需要密码,程序用户nologin不能切换。

语法:

su [-] 用户名
 #切换用户不加选项[-] 没有权限,只能查看
 root@localhost ~]# su user1
 [user1@localhost root]$ pwd
 /root
 [user1@localhost root]$ 

选项:

选项作用
-, -l, --login切换目录用户的登录shell
-s指定shell切换

案例:

su 与 su - 的对比

#su 不会切换目标用户的登录shell
 #切换用户不加选项[-] 没有权限,只能查看
 root@localhost ~]# su user1
 [user1@localhost root]$ pwd
 /root
 [user1@localhost root]$ 
 ​
 #su -会切换到目标用户的登录shell
 [root@localhost ~]# su - user1
 上一次登录:四 5月 15 18:36:56 CST 2025pts/1 上
 [user1@localhost ~]$ pwd
 /home/user1
 [user1@localhost ~]$ 

s指定shell切换

[root@localhost ~]# useradd -s /sbin/nologin fff
 [root@localhost ~]# ls -l /home/fff
 总用量 0
 [root@localhost ~]# cd /home
 [root@localhost home]# ls
 fff  user  user1  user2
 [root@localhost home]# ls -l /home/
 总用量 0
 drwx------. 3 fff   fff   78 5月  15 19:13 fff
 drwx------. 3 user  user  78 5月  15 19:09 user
 drwx------. 3 user1 user1 78 5月  15 19:10 user1
 drwx------. 3 user2 user2 78 5月  15 19:10 user2
 [root@localhost home]# cd
 [root@localhost ~]# su - fff
 This account is currently not available.
 [root@localhost ~]# cd /home
 [root@localhost home]# su - fff
 上一次登录:四 5月 15 19:15:34 CST 2025pts/1 上
 This account is currently not available.
 [root@localhost home]# cd
 [root@localhost ~]# su -s /bin/bash fff

普通用户切换普通用户(需要设置密码才能切换用户)

[root@localhost ~]# su - user
 上一次登录:四 5月 15 19:29:01 CST 2025pts/1 上
 [user@localhost ~]$ su - user1
 密码:
 最后一次失败的登录:四 5月 15 19:30:03 CST 2025pts/1 上
 最有一次成功登录后有 1 次失败的登录尝试。
 [user1@localhost ~]$ 

2、sudo命令

sudo用来进行普通用户提升权限

语法:

sudo [选项] 参数

选项:

选项作用
-i切换到指定用户的登录shell。采用本身的密码提供验证。

注意:sudo -i root,切换到root,必须存在于sudoers文件中的普通用户才有权限。

案例:

1)切换到root用户

vim /etc/sudoers
 #通过查看该文件发现当用户的附加组为wheel时,可以执行任意命令
 usermod -a zhx -G wheel
 [zhx@localhost ~]$ sudo -i
 ​
 [root@localhost ~]# su - user
 上一次登录:四 5月 15 19:53:05 CST 2025pts/1 上
 [user@localhost ~]$ sudo -i
 ​
 我们信任您已经从系统管理员那里了解了日常注意事项。
 总结起来无外乎这三点:
 ​
     #1) 尊重别人的隐私。
     #2) 输入前要先考虑(后果和风险)。
     #3) 权力越大,责任越大。
 ​
 [sudo] user 的密码:
 [root@localhost ~]# 

2)提升普通用户使用命令的权限

#使用ifconfig命令修改网卡的IP参数(打开虚拟机设置,添加网卡)
 [user@localhost ~]$ ifconfig ens37
 ens37: flags=4098<BROADCAST,MULTICAST>  mtu 1500
         ether 00:0c:29:18:b5:c2  txqueuelen 1000  (Ethernet)
         RX packets 0  bytes 0 (0.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 0  bytes 0 (0.0 B)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 ​
 [user@localhost ~]$ ifconfig ens37 192.168.10.210
 SIOCSIFADDR: 不允许的操作
 SIOCSIFFLAGS: 不允许的操作
 [user@localhost ~]$ sudo ifconfig ens37 192.168.10.210
 [sudo] user 的密码:
 [user@localhost ~]$ sudo ifconfig ens37 
 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.10.210  netmask 255.255.255.0  broadcast 192.168.10.255
         inet6 fe80::20c:29ff:fe18:b5c2  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:18:b5:c2  txqueuelen 1000  (Ethernet)
         RX packets 0  bytes 0 (0.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 25  bytes 3829 (3.7 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 ​
 #查找UID为0的用户
 #cat /etc/passwd/ | cut -d: -f3 | gerp -E "^[0]$" | wc -l

五、用户登录信息查看

1、id命令

查看用户的基本属性,用户UID,基本组及附加组

语法:

id [OPTION]... [USER]

选项:

| 选项 | 作用 | | ---- | ---- |

案例:

[root@localhost ~]# id user
 uid=1000(user) gid=1000(user) 组=1000(user),10(wheel)

2、w命令

查看当前系统登录详情

语法:

w [options]

选项:

选项作用
-h不显示表头

案例:

[root@localhost ~]# w
  20:23:22 up 11:43,  2 users,  load average: 0.00, 0.01, 0.05
 USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
 root     pts/0    192.168.166.1    19:57   25:38   0.37s  0.15s bash
 root     pts/1    192.168.166.1    17:56    2.00s  0.70s  0.01s w

3、who命令

显示当前系统登录的摘要信息

语法:

 ​

选项:

选项作用
-b, --boot上次系统启动时间
-u, --users列出已登录的用户

案例:

[root@localhost ~]# who
 root     pts/0        2025-05-15 19:57 (192.168.166.1)
 root     pts/1        2025-05-15 17:56 (192.168.166.1)

1)查看系统的启动时间

 [root@localhost ~]# who -b
          系统引导 2025-05-15 08:40

2)查看系统登录用户

[root@localhost ~]# who -u
 root     pts/0        2025-05-15 19:57 00:22       53692 (192.168.166.1)
 root     pts/1        2025-05-15 17:56   .         38568 (192.168.166.1)

4、whoami命令

显示当前登录用户的名称

语法:

 whoami 

选项:

选项作用

案例:

[root@localhost ~]# whoami
 root

5、finger命令

查看用户登录信息,默认系统不存在该命令,需要安装

[root@localhost ~]# yum install -y finger

语法:

 finger 

选项:

选项作用

案例:

[root@localhost ~]# finger
 Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
 root      root       pts/0      43  May 15 19:57                           (192.168.166.1)
 root      root       pts/1          May 15 17:56                           (192.168.166.1)

6、last命令

last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。

查看没见过的用户登录

语法:

 
last

选项:

选项作用

案例:

[root@localhost ~]# last
 root     pts/1        192.168.115.1    Mon Apr  8 19:35   still logged in   
 root     pts/2        192.168.115.1    Mon Apr  8 19:30   still logged in   
 root     pts/1        192.168.115.1    Mon Apr  8 19:30 - 19:32  (00:02)    
 root     pts/0        :0               Mon Apr  8 19:28   still logged in   
 root     :0           :0               Mon Apr  8 19:28   still logged in   
 reboot   system boot  3.10.0-1160.el7. Mon Apr  8 19:15 - 11:45  (-7:-29)   
 root     pts/0        :0               Tue Mar 26 10:08 - 10:09  (00:00)    
 root     :0           :0               Tue Mar 26 10:08 - crash (13+09:06)  
 reboot   system boot  3.10.0-1160.el7. Mon Mar 25 20:08 - 11:45 (13+15:37)  
 ​
 wtmp begins Mon Mar 25 20:08:19 2024
 var/log/wtmp 路径
 echo > wtmp

7、lastb命令

lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录用于发现系统登录异常。此命令要求root用户才可以执行,lastb可用参数与last命令参数相同。

语法:

last

选项:

选项作用

案例:

[root@localhost ~]# lastb
 user1    pts/1                         Thu May 15 19:30 - 19:30  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:14 - 15:14  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:14 - 15:14  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:14 - 15:14  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:14 - 15:14  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:14 - 15:14  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:14 - 15:14  (00:00)    
 1        ssh:notty    192.168.166.1    Mon May 12 15:13 - 15:13  (00:00)    
 root     :0           :0               Sun May 11 01:05 - 01:05  (00:00)    
 user     :0           :0               Sun May 11 08:22 - 08:22  (00:00)    
 ​
 btmp begins Sun May 11 08:22:24 2025

8、lastlog命令

统计当前系统中存在用户的登录情况

语法:

 lastlog

选项:

选项作用

案例:

[root@localhost ~]# lastlog
 用户名           端口     来自             最后登陆时间
 root             pts/0    192.168.166.1    四 5月 15 19:57:19 +0800 2025
 bin                                        **从未登录过**
 daemon                                     **从未登录过**
 adm                                        **从未登录过**
 lp                                         **从未登录过**
 sync                                       **从未登录过**
 shutdown                                   **从未登录过**
 halt                                       **从未登录过**
 mail                                       **从未登录过**
 operator                                   **从未登录过**
 games                                      **从未登录过**
 ftp                                        **从未登录过**
 nobody                                     **从未登录过**
 systemd-network                            **从未登录过**
 dbus                                       **从未登录过**
 polkitd                                    **从未登录过**
 libstoragemgmt                             **从未登录过**
 colord                                     **从未登录过**
 rpc                                        **从未登录过**
 saned                                      **从未登录过**
 saslauth                                   **从未登录过**
 abrt                                       **从未登录过**
 setroubleshoot                             **从未登录过**
 rtkit                                      **从未登录过**
 pulse                                      **从未登录过**
 radvd                                      **从未登录过**
 chrony                                     **从未登录过**
 unbound                                    **从未登录过**
 qemu                                       **从未登录过**
 tss                                        **从未登录过**
 usbmuxd                                    **从未登录过**
 geoclue                                    **从未登录过**
 gluster                                    **从未登录过**
 gdm              :0                        四 5月 15 08:40:33 +0800 2025
 rpcuser                                    **从未登录过**
 nfsnobody                                  **从未登录过**
 gnome-initial-setup                           **从未登录过**
 sshd                                       **从未登录过**
 avahi                                      **从未登录过**
 postfix                                    **从未登录过**
 ntp                                        **从未登录过**
 tcpdump                                    **从未登录过**
 user             pts/0                     四 5月 15 19:57:34 +0800 2025
 user1            pts/1                     四 5月 15 19:31:34 +0800 2025
 user2                                      **从未登录过**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值