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

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

Linux组

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

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

  • 主要组 - 当用户创建文件时,文件的组将设置为用户的主要组。通常,组的名称与用户的名称相同,有关用户主要组的信息存储在/etc/passwd文件中
  • 辅助或补充组 - 当您要将某些文件权限授予作为该组成员的一组用户时很有用。例如,如果将特定用户添加到docker组中,则用户将从组继承访问权限,并且可以运行docker命令

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

如何将现有用户添加到组

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

sudo usermod -a -G groupname username

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

sudo usermod -a -G sudo myfreax

-a将用户添加到新组时始终使用追加的方式。如果省略该-a 选项,则将从-G选项后未列出的任何组中删除用户。

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

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

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

sudo usermod -a -G group1,group2 username

怎么从组中删除用户

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

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 次要组和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。

如果您有任何疑问,请随时发表评论