如何在Linux下将用户添加到组中
在本教程中,我们将解释如何在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
,它属于wheel
、storage
、libvirt
、docker
和kvm
等补充组别。
使用groups
命令来显示用户的辅助组。
groups linuxize
输出
wheel storage power users libvirt docker kvm
如果没有向groups
命令传递用户名,它将打印当前登录用户的组别。
总结
在本教程中,我们向你展示了如何将一个用户添加到一个组中。
同样的命令适用于任何Linux发行版,包括Ubuntu、CentOS、RHEL、Debian、和Linux Mint。
如果您有任何问题,请随时留言咨询。