> 文章列表 > [Linux]管理用户和组

[Linux]管理用户和组

[Linux]管理用户和组

​⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的同时自己也得到复习。
⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁

Linux : 管理用户和组

  • 1、命令总结
  • 2、项目知识
    • 2.1、用户和用户组
    • 2.2、用户配置文件
      • 2.2.1、用户帐号文件
      • 2.2.2、用户影子文件
      • 2.2.3、1970年1月1日
    • 2.3、用户管理
      • 2.3.1、🔺思维导图
      • 2.3.2、添加用户
      • 2.3.3、设置密码
      • 2.3.4、修改用户信息
      • 2.3.5、删除用户
        • 2.3.5.1、宿主目录
        • 2.3.5.2、用户邮件
    • 2.4、组配置文件
      • 2.4.1、用户组账号
      • 2.4.2、用户组加密文件
    • 2.5、管理组
      • 2.5.1、思维导图
      • 2.5.2、添加组
      • 2.5.3、组密码
      • 2.5.4、组成员
      • 2.5.5、组属性
      • 2.5.6、查看所属组
      • 2.5.7、切换基本组
      • 2.5.8、删除组

1、命令总结

这里表格中的命令均来自本文内容,可在下文找到详解

用户管理:

命令 说明
useradd username 添加用户
passwd [选项]… 用户名 设置密码
usermod [选项] username 修改用户信息
userdel [-r] 用户名 删除用户

组管理:

命令 说明
groupadd [-g 组id值] 组名称 添加组
grep 组名称 /etc/group 查询组账号文件信息
gpasswd [-r] 组账号名 设置/移除组密码(添加-r为移除密码)
gpasswd [选项]… 组名 管理组成员
groupmod [选项]… 组名 修改组属性
groups 用户名 显示用户所属组
newgrp 组名 切换基本组
groupdel 组名 删除组(删除的目标组不能是用户的基本组)

2、项目知识

2.1、用户和用户组

Linux的多用户 : 管理方便、安全
多用户操作系统的安全:

  1. 系统管理更方便
  2. 多用户管理的系统更安全:比如user01用户下的某个文件不想让其它用户看到,只需设置文件的权限,只有user01用户可读可写可编辑
  3. 从服务器角度,多用户的系统安全性 :Windows操作系统在系统权限管理的能力无法和Linux或Unix类系统相比

Linux系统中每个文件和程序都归属于一个特定的用户。

每个用户都有一个名字标识,叫做用户ID(UID)
  root用户:UID为0
  系统用户:UID为1~999,保留给服务使用,一般不允许登录。
  普通用户:UID为1000~60000,可以登录。
每个组都有一个名字标识,叫做组ID(GID)。组用于区分权限,不用于登录

用户和用户组的对应关系:一对一、多对一、一对多或多对多:

  1. 一对一:某个用户可以是某个组的唯一成员;
  2. 多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如user01和user02两个用户只归属于users用户组;
  3. 一对多:某个用户可以是多个用户组的成员; 比如user01可以是root组成员,也可以是users用户组成员,还可以是adm用户组成员;
  4. 多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;
      主要组
      附加组
       一个用户只能归属一个主要组(基本组),但可以归属多个附加组(附属组、 扩展组)

2.2、用户配置文件

2.2.1、用户帐号文件

用户账号文件 /etc/passwd:

  1. 用户账号数据存放
  2. 添加新用户,文件产生一个对应的设置项
  3. 每一行保存一个用户的资料
  4. 每一个数据项之间采用:分隔
    例如:用cat查看/etc/passwd文件内容:
    [Linux]管理用户和组
    [Linux]管理用户和组

2.2.2、用户影子文件

用户影子文件 /etc/shadow

  1. 作用:以防破解口令,将加密的口令转移到/etc/shadow里
  2. 该文件只能被root用户读取
  3. 每行是8个冒号分隔的9个域

例如:查看/etc/shadow文件第一行内容
[Linux]管理用户和组
[Linux]管理用户和组
字段2:密码字段为!!表示无密码,
linux默认不允许无密码登录。
字段3、字段8:时间从1970 年1 月1 日
算起。

2.2.3、1970年1月1日

  对于计算机而言,时间从1970年1月1日开始的意义,源于 Unix 操作系统的诞生。在 Unix 系统中,时间戳被定义为从 1970 年 1 月 1 日 00:00:00 UTC 开始的秒数。这个时间被称为 Unix 纪元(Unix Epoch)。

  Unix 纪元成为计算机中的一个重要参考时间,因为在 Unix 系统中,时间戳被广泛用于文件时间戳、进程启动时间、系统运行时间等。此外,许多编程语言和操作系统也采用 Unix 时间戳来表示日期和时间。

  使用 Unix 时间戳的好处之一是它可以跨越不同的时区和地理位置,在计算机系统之间保持一致性和可比性。例如,如果您的计算机在美国,而您的服务器在欧洲,使用 Unix 时间戳可以使这两个系统之间的时间戳具有可比性。

  因此,1970年1月1日对于计算机而言具有特殊的意义,是计算机中一个重要的时间起点,也是计算机中时间表示的基础。

2.3、用户管理

2.3.1、🔺思维导图

[Linux]管理用户和组

2.3.2、添加用户

命令:useradd username
使用该命令创建用户账户时,默认的用户家目录会被存放在/home目
录中,默认的Shell为/bin/bash,而且默认会创建一个与该用户同名
的组。
选项:
  [Linux]管理用户和组
例:新建一个用户user1,UID、GID、主目录均按默认
  命令:useradd user1

[Linux]管理用户和组
[Linux]管理用户和组

2.3.3、设置密码

[Linux]管理用户和组

2.3.4、修改用户信息

命令:usermod [选项] username
选项:
  [Linux]管理用户和组
例:将user1用户改名为u1,主目录为/test
命令:usermod –l u1 –d /test user1

2.3.5、删除用户

命令:userdel [-r] 用户名
添加-r选项:宿主目录/用户邮件也一并删除
[Linux]管理用户和组

2.3.5.1、宿主目录

  在 Linux 系统中,宿主目录(Host directory)指的是主机操作系统中的一个目录,在容器中可以通过挂载的方式访问到。宿主目录一般用于在容器中与主机系统共享文件或目录。

  在 Docker 中,可以使用 -v 或 --mount 选项将主机操作系统中的一个目录挂载到容器中的一个目录上。这样,容器中的进程就可以访问这个宿主目录中的文件或目录。例如:

docker run -v /host/path:/container/path -it image_name

  上面的命令将主机操作系统中的 /host/path 目录挂载到容器中的 /container/path 目录上。容器中的进程可以通过 /container/path 访问到 /host/path 目录中的文件或目录。

  需要注意的是,宿主目录的使用需要小心,因为容器中的进程可以访问主机操作系统中的文件系统,这可能会导致安全问题。因此,在使用宿主目录时,需要注意权限设置和安全措施,以确保容器中的进程不会破坏主机操作系统中的文件系统。

2.3.5.2、用户邮件

  在 Linux 中,用户邮件指的是用户在 Linux 操作系统上使用的电子邮件服务。Linux 操作系统中常用的邮件服务软件有 Sendmail、Postfix、Qmail 等。

  用户可以通过配置邮件服务器和邮件客户端来使用邮件服务。在 Linux 中,可以使用命令行邮件客户端软件如 Mutt、Mailx 或者 Graphical User Interface(GUI) 邮件客户端如 Thunderbird 来收发邮件。

  邮件服务器可以支持不同的邮件协议,如 SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol version 3)和 IMAP(Internet Mail Access Protocol)。SMTP 协议用于发送邮件,POP3 和 IMAP 协议用于接收邮件。用户可以根据需求选择不同的协议进行邮件服务的配置。

  在 Linux 中,用户邮件服务通常需要管理员进行配置和管理。管理员可以通过配置邮件服务器和邮件客户端,设置邮件服务的安全和权限等参数,以确保邮件服务的正常运行和用户信息的安全。

2.4、组配置文件

2.4.1、用户组账号

用户组账号文件 /etc/group:

  1. 文本文件,
  2. 包含了Linux组的名称和每个组中的成员列表
  3. 每行代表一个组,包含4个字段
  4. 组名、被加密的口令、GID、成员列表

例如:用cat查看/etc/group文件内容
[Linux]管理用户和组
/etc/group字段说明:

  1. 组名称;
  2. 组密码;
  3. 组ID;
  4. 组所包含的附加用户列表(以逗号分隔);

2.4.2、用户组加密文件

用户组加密文件 /etc/gshadow
5. 文本文件
6. 是/etc/group的加密文件
7. 每行代表一个组,包含4个字段
[Linux]管理用户和组
/etc/gshadow字段说明:

  1. 第一字段:用户组
  2. 第二字段:用户组密码,可是空或!,如果是空的或有!,表示没有密码;
  3. 第三字段:用户组管理者,可为空,如果有多个用户组管理者,用,号分割;
  4. 第四字段:组里的附加用户,如果有多个用户,用,号分割;

2.5、管理组

2.5.1、思维导图

[Linux]管理用户和组

2.5.2、添加组

[Linux]管理用户和组

2.5.3、组密码

[Linux]管理用户和组
  组密码的作用:非本用户组的用户想切换到本用户组身份时,可以通过密码保证安全性。
  如果没有设置组密码,则只有属于本用户组的用户能够切换到本用户组的身份。

2.5.4、组成员

[Linux]管理用户和组

2.5.5、组属性

[Linux]管理用户和组

  

2.5.6、查看所属组

[Linux]管理用户和组
  [Linux]管理用户和组

2.5.7、切换基本组

[Linux]管理用户和组
  临时切换主要组,以获得另一个组的权限。如果新组不是当前用户的属组,需要输入新组的密码(这个组已经设置密码)

2.5.8、删除组

[Linux]管理用户和组