如何在Linux中将用户添加到组
在本教程中,我们将说明如何在Linux系统中将用户添加到组中。
我们还将向我们展示如何从组中删除用户以及如何创建,删除和列出组。
Linux组
Linux组是用于在Linux中组织和管理用户帐户的组织单位。
组的主要目的是为一组可以在组内用户之间共享的给定资源定义一组特权,例如读取,写入或者执行权限。
Linux操作系统中有两种类型的组:
- 主要组–用户创建文件时,文件的组将设置为用户的主要组。通常,组的名称与用户的名称相同。有关用户主要组的信息存储在“/etc/passwd”文件中。
- 辅助组或者辅助组-在我们要向属于该组成员的一组用户授予某些文件权限时很有用。例如,如果我们将特定用户添加到docker组,则该用户将继承该组的访问权限并能够运行docker命令。
每个用户可以恰好属于一个主要组,零个或者多个次要组。
只有root或者具有“ sudo”访问权限的用户才能将用户添加到组中。
如何将现有用户添加到组
要将现有用户添加到辅助组,请使用“ usermod -a -G”命令,后跟该组和用户的名称:
sudo usermod -a -G groupname username
例如,要将用户“ theitroad”添加到“ sudo”组,我们将运行以下命令:
sudo usermod -a -G sudo theitroad
将用户添加到新组时,请始终使用“ -a”(添加)选项。
如果省略“ -a”选项,则该用户将从“ -G”选项之后未列出的任何组中删除。
成功后,“ usermod”命令将不显示任何输出。
仅当用户或者组不存在时,它才会警告我们。
如何在一个命令中将现有用户添加到多个组
如果要在一个命令中将现有用户添加到多个辅助组,请使用“ usermod”命令,后跟该组的“ -G”选项名称,并用“,”(逗号)分隔:
sudo usermod -a -G group1,group2 username
如何从组中删除用户
要从组中删除用户,请使用带有-d选项的'gpasswd'命令。
在以下示例中,我们从组“ groupname”中删除用户“ username”:
sudo gpasswd -d username groupname
如何建立群组
要创建一个新组,请使用“ groupadd”命令,后跟组名称:
sudo groupadd groupname
如何删除群组
要删除现有组,请使用“ groupdel”命令,后跟组名称:
sudo groupdel groupname
如何更改用户的主要组
要更改用户主要组,请使用“ usermod”命令,然后使用“ -g”选项:
sudo usermod -g groupname username
在以下示例中,我们将用户“ theitroad”的主要组更改为“ developers”:
sudo usermod -g developers theitroad
如何在一个命令中创建新用户和分配组
以下“ useradd”命令创建一个名为“ nathan”的新用户,主要组为“ users”,次要组为wheel和developers。
sudo useradd -g users -G wheel,developers nathan
显示用户组
要显示完整的用户信息,包括用户所属的所有组,请使用“ id”命令,后跟用户名:
id username
如果省略用户名,该命令将打印有关当前登录用户的信息。
让我们检查用户“ theitroad”:
id theitroad
uid=1000(theitroad) gid=100(users) groups=100(users),10(wheel),95(storage),98(power),990(libvirt),993(docker),999(kvm)
从上面的输出中,我们看到用户的主要组是“用户”,并且属于“ wheel”,“ storage”,“ libvirt”,“ docker”和“ kvm”补充组。
使用“组”命令显示用户的补充组:
groups theitroad
wheel storage power users libvirt docker kvm
如果没有用户名传递给“ groups”命令,它将打印当前登录的用户的组。