如何从组中删除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',运行以下命令(即仅在'root'组和它的主要'testuser'组中保留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
我们现在将手动编辑最后两个条目来删除测试程序,然后从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