如何在 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
,次要组是 wheel
和 developers
。
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
,并且它同时属于的 wheel
, storage
, libvirt
, docker
和 kvm
辅助组。
使用该 groups
命令显示用户的补充组:
groups buzheng
wheel storage power users libvirt docker kvm
与 id
命令相同,如果省略用户名, groups
命令将打印当前登录用户的组。
结论
在本教程中,您学习了如何将用户添加到组中。相同的命令适用于任何 Linux 发行版,包括 Ubuntu , CentOS , RHEL , Debian 和 Linux Mint 。