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

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

4 min read
By myfreax
如何在Linux中将用户添加到组

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

Linux操作系统中有两种类型的组:主要组 –用户创建文件时,文件的组将设置为用户的主要组。通常,组的名称与用户的名称相同。相关用户的主要组的信息存储在/etc/passwd文件中。

次要或补充组-除了主要组外的其它的用户所在组,在您希望向某个用户授予某些文件权限时很有用。例如,如果将指定用户添加到docker组,则该用户将继承该组的访问权限,并且将能够运行docker命令。每个用户仅有一个主要组,零个或多个次要组。

在本教程中,我们将介绍如何在Linux系统中将用户添加到组。我们还将向您展示如何从组中删除用户以及如何创建,删除和列出组。创建用户并添加到辅助组/补充组,将一个用户同时分配到多个组。更改主要组,修改用户所属组,主要组和次要组的差别。相同的命令适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。

先决条件

要向一个组中添加用户,您需要以root限具有sudo权限用户登录。

如何将现有用户添加到组中

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

sudo usermod -a -G groupname username

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

sudo usermod -a -G sudo myfreax

将用户添加到新组时,始终使用-a(附加)选项。如果省略-a选项, 则该用户会从-G选项之后未列出的任何组中删除。成功后,usermod命令将不会显示任何输出。仅当用户或组不存在时,它才会警告您。

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

如果要在一个命令中将现有用户添加到多个辅助组,请使用usermod命令,然后使用以,逗号分隔的组的名称:

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

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

sudo usermod -g developers myfreax

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

以下内容useradd命令将创建一个名为nathan的新用户,主要组为users,辅助组为wheel和developers。

sudo useradd -g users -G wheel,developers nathan

显示用户组

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

id username

如果省略用户名,该命令将打印当前登录用户的信息。让我们检查一下用户myfreax所属组:

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

从上面的输出中,我们看到此用户的主要组是users,它属于wheelstoragelibvirtdockerkvm补充组。使用groups命令将仅打印用户的补充组:

groups myfreax
wheel storage power users libvirt docker kvm

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

结论

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