如何从组中删除Linux用户

用户可以是一个Linux主要组和一个或多个次要(补充)组的成员。文件“ / etc / group”定义Linux系统上每个用户的组成员身份。

在本教程中,您将学习如何从Linux组中删除用户。它还显示了如何使用两种方法从“ / etc / group”文件中的组中手动删除用户。

创建一个Linux用户

对于本教程,创建一个名为“ testuser”的用户。创建新用户时,还将创建与该用户同名的新主组。

通过发出以下命令来创建新用户。

$ sudo useradd -m testuser

您现在可以为该用户创建密码。

$ sudo passwd testuser
Changing password for user testuser.
New password: 
BAD PASSWORD: The password contains the user name in some form
Retype new password: 
passwd: all authentication tokens updated successfully.

我使用了与用户名相同的密码,因此收到警告,提示密码中不得包含用户名。

将用户添加到组

首先,使用groupadd命令创建两个新组,如下所示:

$ sudo groupadd testgroup1
$ sudo groupadd testgroup2

然后使用以下命令将“ testuser”用户添加到上面创建的两个组中,还将用户添加到“ root”组:

$ sudo usermod -a -G root testuser
$ sudo usermod -a -G testgroup1 testuser
$ sudo usermod -a -G testgroup2 testuser

现在,通过查看“ / etc / group”文件,您可以看到“ testuser”是所有三个组的成员。

$ cat /etc/group
root:x:0:testuser
.............
testuser:x:1001:
testgroup1:x:1002:testuser
testgroup2:x:1003:testuser

找出用户所属的组

您还可以通过以下两种方法查看用户所属的组:

$ groups testuser
testuser : testuser testgroup1 testgroup2 root

$ id -nG testuser
testuser testgroup1 testgroup2 root

如您所见,输出非常相似,这些命令也是如此。

使用usermod从组中删除用户

您可以使用usermod命令一次将用户从一个或多个组中删除。您必须使用usermod来指定保存用户的辅助组。让我举例说明。

$ groups testuser
testuser : testuser testgroup1 testgroup2 root

要从“ testgroup1”和“ testgroup2”组中删除用户“ testuser”,请运行以下命令(即,仅将testuser保留在“ root”组和主要的“ testuser”组中):

$ sudo usermod -G root testuser
Results
$ groups testuser
testuser : testuser root

因此,为了将用户保留在更多的组中,您必须提及组名,并用逗号(,)分隔,如下所示:

$ sudo usermod -G root,testgroup1 testuser
Results
# groups testuser
testuser : testuser root testgroup1

使用gpasswd从组中删除用户

获得类似结果的另一个命令是gpasswd。与usermod不同,此命令用于从指定组中删除用户。您可以使用gpasswd命令从特定组中删除用户。

$ sudo gpasswd -d testuser root
Removing user testuser from group root

$ groups testuser
testuser : testuser testgroup1 testgroup2

$ sudo gpasswd -d testuser testgroup1
Removing user testuser from group testgroup1

$ groups testuser
testuser : testuser testgroup2

从组中删除用户(手动)

您也可以手动编辑文件“ / etc / group”以从组中删除用户。重新启动后,此方法的效果将应用于用户。

您可以使用自己喜欢的文本编辑器来编辑“ / etc / group”文件。

$ cat /etc/group
.............
sssd:x:993:
sshd:x:74:
chrony:x:992:
vagrant:x:1000:
slocate:x:21:
vboxsf:x:991:
testuser:x:1001:
testgroup1:x:1002:testuser
testgroup2:x:1003:testuser

$ groups testuser
testuser : testuser testgroup1 testgroup2 root

手动编辑最后两个条目以删除testuser并将其从testgroup1和testgroup2中删除(编辑后的文件应如下所示):

$ cat /etc/group
.............
sssd:x:993:
sshd:x:74:
chrony:x:992:
vagrant:x:1000:
slocate:x:21:
vboxsf:x:991:
testuser:x:1001:
testgroup1:x:1002:
testgroup2:x:1003:

重新引导后进行了更改,并将用户从这两个组中删除。

$ groups testuser
testuser : testuser root

结论

在本教程中,您学习了如何使用usermod,gpasswd从组中删除用户,以及如何从“ / etc / group”文件中手动删除用户。

这些说明可以在Linux系统(例如Ubuntu,CentOS和Fedora)上使用。如有任何疑问,请在下面的评论部分中告诉我们。

Sidebar