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

评论 0 浏览 0 2018-08-25

在本教程中,我们将解释如何在Linux系统中向一个组添加用户。我们还将向你展示如何从一个组中删除一个用户,以及如何创建、删除和列出组。

Linux组

Linux组是用于组织和管理Linux中用户账户的组织单位。组的主要目的是定义一组权限,如某一资源的读、写、或执行权限,可以在组内的用户之间共享。

在Linux操作系统中,有两种类型的群组。

  • 主组 - 当用户创建一个文件时,该文件的组被设置为用户的主组。通常情况下,组的名称与用户的名称相同。关于用户的主组的信息被存储在/etc/passwd文件中。

  • 次要或补充组 - 当你想给一组属于该组的用户授予某些文件权限时,很有用。例如,如果你把一个特定的用户添加到docker组,该用户将继承该组的访问权限,并能够运行docker命令。

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

只有root或具有sudo权限的用户可以将用户添加到一个组中。

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

要将一个现有的用户添加到一个二级组中,请使用usermod -a -G命令,后跟组和用户的名字。

sudo usermod -a -G groupname username

例如,要把用户linuxize添加到sudo组,你要运行下面的命令。

sudo usermod -a -G sudo linuxize

当添加用户到一个新的组时,总是使用-a(追加)选项。如果你省略了-a选项,该用户将被从-G选项后未列出的任何组中删除。

成功后,usermod命令不显示任何输出。它只在用户或组不存在时警告你。

如何在一个命令中把一个现有的用户添加到多个群组中去

如果你想在一条命令中把一个现有的用户添加到多个二级组中,请使用usermod命令,-G选项后跟,(逗号)隔开的组的名称。

sudo usermod -a -G group1,group2 username

如何从一个组中删除一个用户

要从一个组中删除一个用户,请使用gpasswd命令,并加上-d选项。

在下面的例子中,我们要把用户username从组别groupname中删除。

sudo gpasswd -d username groupname

如何创建一个群组

要想创建一个新的组,请使用groupadd命令,后面跟上组的名称。

sudo groupadd groupname

如何删除一个群组

要删除一个现有的组,请使用groupdel命令,后面跟上组的名称。

sudo groupdel groupname

如何改变一个用户的主要组别

要改变一个用户的主组,请使用usermod命令,后面跟着-g选项。

sudo usermod -g groupname username

在下面的例子中,我们要把用户linuxize的主要组别改为developers

sudo usermod -g developers linuxize

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

下面的useradd命令创建了一个名为nathan的新用户,其主要组别为users,次要组别为wheel和developer。

sudo useradd -g users -G wheel,developers nathan

显示用户组

要显示完整的用户信息,包括一个用户所加入的所有组,请使用id命令,后面跟上用户名。

id username

如果你省略了用户名,该命令将打印当前登录用户的信息。让我们检查一下用户linuxize

id linuxize

输出

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

从上面的输出中,我们看到用户的主要组别是users,它属于wheelstoragelibvirtdockerkvm等补充组别。

使用groups命令来显示用户的辅助组。

groups linuxize

输出

wheel storage power users libvirt docker kvm

如果没有向groups命令传递用户名,它将打印当前登录用户的组别。

总结

在本教程中,我们向你展示了如何将一个用户添加到一个组中。

同样的命令适用于任何Linux发行版,包括Ubuntu、CentOS、RHEL、Debian、和Linux Mint。

如果您有任何问题,请随时留言咨询。

最后更新2023-10-04
0 个评论