如何在 Linux 中将用户添加到组

在本教程中,我们将介绍如何将用户添加到 Linux 系统中的组。我们还将向您展示如何从组中删除用户以及如何创建,删除和列表显示组。

先决条件

为了能够将用户添加到组,您需要以具有 sudo 访问权限或 root 权限的用户身份登录。

Linux 组

Linux 组是组织单位,用于在 Linux 中组织和管理用户帐户。组的主要目的是定义一组权限,例如读取,写入或执行等可以在组内用户之间共享的给定资源的权限。

Linux 操作系统中有两种类型的组:

  • 主要组 - 当用户创建文件时,文件的组将设置为用户的主要组。通常,组的名称与用户的名称相同。有关用户主要组的信息存储在 /etc/passwd 文件中。

  • 辅助或补充组 - 当您要将某些文件权限授予作为该组成员的一组用户时很有用。例如,如果将特定用户添加到 docker 组中,则用户将从组继承访问权限,并且可以运行 docker 命令。

每个用户可以属于一个主要组和零个或多个辅助组。

如何将现有用户添加到组

要将现有用户添加到辅助组,请使用 usermod 命令后跟 -G 选项和组名称:

sudo usermod -a -G groupname username

例如,要将用户添加 buzheng 到名为 sudo 的组,您需要运行以下命令:

sudo usermod -a -G sudo buzheng

-a 将用户添加到新组时始终采用追加开关。如果省略该 -a 选项,则用户只属于 -G 列出的组。

成功后, usermod 命令不会显示任何输出。仅当用户或组不存在时,它才会警告您。

如何在一个命令中将现有用户添加到多个组

如果要在一个命令中将现有用户添加到多个辅助组,请使用 usermod 命令后跟的 -G 参数中的多个组由 , (逗号)分隔:

sudo usermod -a -G group1,group2 username

如何从组中删除用户

要从组中删除用户,请使用以下 gpasswd 命令。在以下示例中,我们将从名为 groupname 的组中删除名为 username 的用户:

sudo gpasswd -d username groupname

如何创建组

要创建新组,您可以使用 groupadd 命令后跟组名:

sudo groupadd groupname

如何删除组

要删除现有组,请使用 groupdel 命令后跟组名:

sudo groupdel groupname

如何更改用户的主要组

要更改用户主组,请使用 usermod 命令后跟 -g 选项:

sudo usermod -g groupname username

在以下示例中,我们将用户 buzheng 的主要组更改为 developers

sudo usermod -g developers buzheng

如何在一个命令中创建新用户和分配组

以下 useradd 命令将创建一个名为 nathan 的新用户, 他的主要组是 users,次要组是 wheeldevelopers  。

sudo useradd -g users -G wheel,developers nathan

显示用户组

要显示完整的用户信息(包括用户所属的所有组),请使用 id 命令后跟用户名:

id username

如果省略用户名,该命令将打印有关当前登录用户的信息。我们来检查用户 buzheng

id buzheng
uid=1000(buzheng) gid=100(users) groups=100(users),10(wheel),95(storage),98(power),990(libvirt),993(docker),999(kvm)

从上面的输出,我们看到,这个用户的主组是 users,并且它同时属于的 wheelstoragelibvirtdockerkvm 辅助组。

使用该 groups 命令显示用户的补充组:

groups buzheng
wheel storage power users libvirt docker kvm

id 命令相同,如果省略用户名, groups 命令将打印当前登录用户的组。

结论

在本教程中,您学习了如何将用户添加到组中。相同的命令适用于任何 Linux 发行版,包括 Ubuntu , CentOS , RHEL , Debian 和 Linux Mint 。