Linux使用组来方便地共享资源。一般来说,资源将具有用户、组和其他访问权限。在本教程中,我们将学习如何将用户添加到Linux组及其变体,如创建组、删除组、列出组成员等。
Linux组
Linux组是用于组织和管理用户帐户和权限的组织单位。特别是对于特权和访问管理,如对给定资源的读、写、执行权限或登录系统,可以通过允许某些组和拒绝某些组来使用组进行管理。
Linux操作系统中有两种类型的组,如下所示。
主要群体
Primary Group
是用户首先选择的组,这意味着如果用户创建文件,则文件组将分配给用户主组。如果用户尝试先使用某些资源,则会检查主组。可以在中查看主要组信息 /etc/passwd
文件如下。
$ cat /etc/passwd

第5列提供主要组信息。正如我们所看到的,一些用户没有主组,因为他们不可操作,并且被操作系统使用,所以他们不需要主组。
次要或补充组
辅助组用于为非用户主组的其他资源提供访问权限。例如,其他用户使用不同的主组创建的文件可以通过使用辅助组共享。一个用户可以有多个辅助组。
将现有用户更改或添加到主组
我们将首先向ta primary组添加一个现有用户。注意,因为这将更改用户的主要组,这可能会由于文件和文件夹所有权和访问限制而产生问题。我们将使用 usermod
命令 -g
具有主要组名和 -a
附加。
相关文章: 如何在Linux中更改或重命名用户名和用户ID?
在本例中,我们将添加用户 ismail
到名为 ali
作为主要群体。
$ sudo usermod -a -g ali ismail
将现有用户添加到辅助组
我们将从将现有用户添加到现有组开始。我们将使用 usermod
命令。 usermod
是用于管理用户和组的命令。我们还将提供 -a
也就是说附加和 -G
我们将在其中指定要添加用户的组。
在这个示例中,我们将添加用户 ismail
对团队来说 syslog
作为第二组。
$ sudo usermod -G syslog ismail
将现有用户添加到多个组
在某些情况下,我们可能需要使用一个命令将用户添加到多个组中。实际上,我们将使用与单个组相同的命令和参数。我们将用 ,
.
在本例中,我们将添加用户 ismail
分为多个辅助组 root
, sudo
, syslog
$ sudo usermod -a -G root,sudo,syslog ismail
从组中删除用户
我们可以从一个组中远程控制一个用户。此组可以是主组或辅助组。我们将使用 gpasswd
与 -d
选项。在本例中,我们将使用远程用户 ismail
来自组 syslog
.
$ sudo gpasswd -d ismail syslog
列出现有组
Linux组信息存储在文件中 /etc/group
. 我们可以在下面列出这个文件,它将提供组。
$ cat /etc/group

使用getent命令列出现有组
列出现有组的另一个好命令是 getent
通过提供 group
选项。
$ getent group

创建组
如果在将用户添加到此组之前需要添加新组,则需要创建它。我们将用 groupadd
. 在本例中,我们将创建一个名为 test
.
$ sudo groupadd test
删除组
我们可以使用 groupdel
命令。在本例中,我们将删除名为 test
.
$ sudo groupdel test
创建新用户并使用单个命令分配组
在某些情况下,我们可能需要创建一个用户并将组分配给该用户多个组。我们将使用 useradd
我们将使用 -g
参数和辅助组 -G
参数。
$ sudo useradd -g ismail -G wheel,developers ismail
用id命令显示用户组
我们可以用不同的命令显示现有的用户组。 id
命令是一个基本命令,它将列出用户名、用户主要组、用户次要组和相关id。
$ id

用groups命令显示用户组
另一个可以列出当前用户组的命令是 groups
命令。
$ group
