Linux 用户组

前面小节介绍了 Linux 用户相关的增删改查,本小节介绍 Linux 用户组,Linux 系统中采取了一种安全机制(即用户组),用户组可以允许多个 Linux 用户共享同一种权限。

1. 用户组介绍

Linux 是多任务多用户的操作系统,可以理解为在 Linux 系统中支持多个用户在同一时间内在不同的终端登陆,并且不同用户可以调用不同的任务,它们之间互不影响

不同的 Linux 用户权限不同,毎个用户可以执行指定权限范围内的任务,Linux 系统通过这种权限的管理划分,实现了多用户多任务的运行机制。因此,如果要使用 Linux 系统的资源,就需要向系统管理员申请一个用户。

通过建立不同权限的用户,可以合理地利用和控制系统资源,还能帮助用户组织文件,提供对用户文件的安全性保护。用户组是具有相同特征用户的逻辑集合,简单的理解,有时我们需要让多个用户具有相同的权限,例如新建、删除、修改、查看文件的权限,可以分别对多个用户进行文件访问授权,但如果用户多了,挨个的给用户授权这种方式就不太合理。

最好的方式是建立一个组,让这个组具有新建、删除、修改、查看文件的权限,然后将所有需要访问此文件的用户放入这个组中,每个组都会有唯一的 GID这样所有组中用户就具有了和组一样的权限

2. 查看 Linux 用户组

Linux 系统中 /etc/group 文件保存的就是系统中所有的用户组的主要信息,和用户文件 /etc/passwd 类似,这些信息以 : 分隔,可以使用 cat 命令查看其中的信息,命令如下:

cat /etc/group

执行结果如下图:

图片描述

Tips:如上图所示,每行代表一个用户组。

/etc/group 文件中每行用户包含的信息如下:

  • 组名;
  • 组密码(以 x 表示);
  • 组 ID(GID);
  • 属于该组的用户列表。

Tips:组密码允许非组内的成员通过它临时使用该组的权限。

3. 查看 Linux 用户组信息

Linux 中 /etc/gshadow 文件上保存了每个用户组的信息,该文件和 /etc/shadow 类似,只有 root 用户才能访问,这个文件中包含每个用户组的一条记录信息,使用 cat 命令查看:

cat /etc/gshadow

执行结果如下图:

图片描述

这些信息以 : 分隔,/etc/gshadow 文件中每行用户包含的信息如下:

  • 组名;
  • 加密密码;
  • 组管理员;
  • 组附加用户列表。

4. 查看用户的 ID 信息

若想要查看某一个 Linux 用户的 组ID(GID)用户ID(UID) ,可以使用 id 命令,命令如下:

id root

id user_name01

id user_name02

执行结果如下图:

图片描述

Tips:最后的字段 组=gid 表示的是用户所在组,这里既可以看到初始组,如果有附加组,则也能看到附加组。

5. 小结

本小节介绍了用户组的作用,用户组在系统中可以方便管理不同权限组的用户,需要注意的是同一个用户可以加入到不同的组中,拥有不同的组分配的权限,非组内用户可以通过组密码临时使用组的权限。还介绍了用户组相关的两个文件 /etc/group/etc/gshadow,最后介绍了如何使用 id 命令查看用户的 UIDGID 信息。