Linux 用户组创建/加入/删除

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

4 min read
By myfreax
Linux 用户组创建/加入/删除

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

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

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

Linux操作系统中有两种类型的组,分别是:

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

辅助或补充组-当您要授予用户在指定组的权限,通常的建议,将用户添加到次要组。每个用户可以属于一个主要组和零个或多个次要组。

例如,如果将指定用户添加到docker组中,则用户将从组继承访问权限,并且可以运行docker命令。

还将向您展示如何从组中删除用户以及如何创建,删除和列出用户组,为了能够将用户添加到组,您需要以具有sudo访问权限或root权限的用户身份登录

加入组

你可使用usermod命令的-aG选项和组名称将现有用户加入到指定组。执行成功时usermod命令不会显示任何输出。仅当用户或组不存在时,它才会警告您。

-G选项表示将用户加入到指定辅助组/次要组,-a选项表示将用户添加到组时使用追加的方式。

如果省略-a选项,则将从未列出的组中删除用户,用户也将会离开自己主要组。因此我们建议添加用户到指定组,始终使用usermod-aG选项。

如果要在一个命令中将用户添加到多个辅助组,可以使用逗号分隔的组的名称,用户将会加入到多个组中。

除了使用usermod将用户添加指定组之外,你还是使用useradd命令创建用户的同时指定要加入的组。

例如,要将用户myfreax添加或者加入到sudo,group1,group2组,你将运行以下命令:

sudo usermod -aG sudo,group1,group2 myfreax

例如使用useradd创建一个名为myfreax的用户,并加入users主要组,次要组是developers,wheel组。

sudo useradd -g users -G wheel,developers nathan

创建组/删除用户

在Linux创建组的命令是groupadd后跟组名,删除组的命令groupdel后跟组名,从组删除用户的命令是gpasswd并使用-d选项。

如果你需要更改用户主要组,请使用usermod命令后跟-g选项。在以下示例中,我们将用户myfreax 的主要组更改为developers

sudo groupadd groupname #创建组
sudo usermod -g developers myfreax #修改myfreax用户的主要是developers
sudo groupdel groupname #删除组
sudo gpasswd -d myfreax sudo #从组中删除myfreax用户

用户与组

要显示完整的用户信息,包括用户所属的所有组,如果省略用户名,该命令将打印有关当前登录用户的信息。

除了使用id命令之外,你还可以使用groups命令显示用户的补充组,与id命令一样。如果省略用户名,groups命令将打印当前登录用户的组信息。

idgroups之间的差别主要在于groups只打印用户次要组信息,而id则显示用户的主要组和次要组,当然还是用户uid和gid。

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

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

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