第5章 掌握Linux系统管理:用户和用户组管理

1,372 阅读7分钟

掌握Linux系统管理:从日常操作到高级配置 章节涵盖一系列关键性的系统管理操作,包括但不限于查看系统日期、内存使用情况、在线用户信息、系统版本等基础知识,以及更复杂的任务如设置时区、管理周期性任务、配置服务自启动等。本章主要讲解用户及用户组的管理。

知识回顾

Linux就一个多用户、多任务的分时操作系统,在一台Linux主机上,可同时登录多个用户,为了对用户的状态进行跟踪,并对其可访问的资源进行控制,每个用户在使用Linux操作系统前,必须先向系统管理员申请一个账号,并设置密码,然后才能登录并访问系统资源。

根据用户的权限,Linux系统中的用户大体分为两类:超级用户ROOT和普通用户,其中超级用户拥有操作Linux系统的所有权限。为保证系统安全,一般不使用超级用户登录,而是创建普通用户,以普通用户身份进行一系列操作。为避免普通用户权限过大,或权限不足,通常需要由ROOT用户创建拥有不同权限的多个用户。下面将对Linux系统中与用户和用户组管理以及用户切换相关的知识点进行讲解。

【用户和用户组文件】

1、用户账号文件-passwd 此文件中保存 是系统中所有用户的属性信息,普通用户可以查看这个文件的内容,但仅有root用户可以进行修改,每一个注册用户在该文件中都有一个对应的记录行,这一记录行记录了此用户的必要信息。文件中的每一行由7个字段的数据组成,字段之间用“:”分隔,其格式如下:

账号名称:密码:用户ID(UID):组群ID(GID):个人资料:主目录:shell

其中:

账号名称:用户登录Linux系统时使用的名称

密码:这里的密码是加密后的密码,若为“X”,说明密码经过了shadow的保护。

用户ID:用户的标识,是一个数值 ,Linux系统内部使用它来区分不同的用户,例如超级用户的UID为0,系统用户的UID一般为1~999,普通用户的UID≥1000的值。

组群ID:用户所在组的标识,是一个数值,Linux系统内部使用它来区分不同的组,相同的组具有相同的GID。

个人资料:用来记录用户的个人信息,如姓名、电话等信息,可以为空。

主目录:通常是/home/username,这里的username是用户名,用户执行“cd ~“命令时当前目录会切换到个人主目录。

Shell:定义用户登录后使用的shell,默认是bash。

通过cat命令查看/etc/passwd文件的内容,如下图2-2查看用户密码所示

2、用户影子文件-shadow

系统中所有用户的密码保存在/etc/shadow文件中。所有的密码都经过MD5算法加密处理,只有具备超级用户权限才能查看这个文件。

/etc/shadow文件中的每一行同样代表一个单独的用户。其中的“:“用于间隔用户的属性信息字段。和/etc/passwd文件类似,shadow文件中的每行由9个字段组成,格式如下:

用户名:密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标识字段

通过cat命令查看/etc/shadow文件,如下图所示:

以root这一行记录为例对/etc/shadow文件中的各个字段进行说明有,如下表所示:

3、用户组账号文件-group和gshadow

Linux的组有私有组、系统组、标准组之分。建立账户时如果没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组属于私有组;标准组可以容纳多个用户,组中的用户都具有组拥有的权利;系统组是Linux系统自动建立的。

组账号信息文件/etc/group中保存的是系统中所有组的属性信息。每一行代表一个单独的组,每一个组的属性分别用“:“隔开。各字段从左到右依次是组名、密码、组ID和用户列表。用户列表中所包含的组成员之间用”,“分隔。

一个用户可以属于多个组,用户所属的组又有主组(初始组)和附加组之分。用户登录的给为主组,主组在/etc/passwd文件中指定;其他组为附加组,即登录后可切换到其他组,附加组在/etc/group文件中指定。

组密码信息文件/etc/gshadow中保存的是系统中所有组的密码,和/etc/shadow一样,所有的密码经过MD5算法加密处理,只有超级用户才可以查看。

【用户和用户组命令集】

任务描述

  1. 前提条件是Linux操作系统处于正常运行状态。
  2. 桌面右键打开终端或远程SSH连接操作Linux服务器。
  3. 学会帮助命令,在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档; linux系统内置的帮助文档很详细,通常能解决我们的问题,我们需要掌握如何正确的去使用它们。
  • 在只记得部分命令关键字的场合,我们可通过man -k来搜索;
  • 需要知道某个命令的简要说明,可以使用whatis;而更详细的介绍,则可用info命令;
  • 查看命令在哪个位置,我们需要使用which;
  • 而对于命令的具体参数及使用方法,我们需要用到强大的man;

任务实施

1、添加用户名称为budaos并指定用户主目录为/usr/budaos并自动创建登录目录budaos

[root@localhost  /]# useradd –d /usr/budaos -m budaos

2、创建新用户edubudaos,设置用户id为876

[root@localhost  /]# useradd  edubudaos -u 876

3、修改用户budaos的用户id为678

[root@localhost /]# usermod -u 678 budaos

4、修改用户edubudaos的用户名称为educb

[root@localhost /]# usermod -l edubudaos educb

 

5、添加用户组g_budaos

[root@localhost /]# groupadd g_budaos

6、修改用户组g_budaos的组名称为gg_budaos

[root@localhost /]# groupmod g_budaos -n gg_budaos

7、修改用户budaos密码

特别提醒: root用户可以修改任意用户的密码;

用户修改自己的密码时,直接passwd就可以了,不需要后面加用户名称,输入原密码确认后,设置新密码和确认密码;

[root@localhost /]# passwd -f creatorblue

 8、为用户budaos分配至用户组g_budaos

[root@localhost /]# usermod budaos -G g_budaos

9、熟悉系统用户配置相关文件

在系统文件中主要是/etc/passwd, /etc/shadow, /etc/group等

[root@localhost /]# vim /etc/passwd

10、删除用户budaos

[root@localhost /]# userdel – f budaos

11、用户组切换至ggbudaos

[root@localhost /]# newgrp_budaos

12、删除用户组gg_budaos

[root@localhost /]# groupdel gg_budaos

13、用户切换su/sudo

[root@localhost /]# su - budaos

14、用户组管理:将用户budaos添加到用户组gg_budaos

[root@localhost /]#gpasswd  -a budaos gg_budaos

16、如何实现一个权限等同root的超级用户

#1.添加用户,首先用 adduser 命令添加一个普通用户,命令如下:
#2.新增一个yzgxhwj账号
adduser yzgxhwj
#修改密码
passwd yzgxhwj
#3修改 /etc/sudoers 文件,找到 root 一行,在 root 下面添加一行,如下所示:
#Allow root to run any commands anywhere root ALL=(ALL) ALL
yzgxhwj ALL=(ALL) ALL
#修改完毕,现在可以用 yzgxhwj 帐号登录,然后用命令 sudo su—, 即可获得 root 权限进行操作。

实验实训

image.png