前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何从组中删除Linux用户?

如何从组中删除Linux用户?

作者头像
用户6543014
发布2020-04-07 16:25:37
18.7K0
发布2020-04-07 16:25:37
举报
文章被收录于专栏:CU技术社区CU技术社区

在Linux中,用户可以是一个主要组和一个或几个次要(辅助)组的成员。文件“ / etc / group”为Linux系统中的每个用户定义了组成员身份。

在本教程中,我们将学习如何在Linux组中删除用户。我们将使用两种方法,还将展示如何通过从“ / etc / group”文件中删除来手动从组中删除用户。

创建Linux用户

就本教程而言,我们将创建一个名为“ testuser”的用户。当创建一个新用户时,也会创建一个与该用户同名的新主要组。

我们将通过发出以下命令来创建新用户:

代码语言:javascript
复制
$ sudo useradd -m testuser

现在,我们可以为该用户创建密码:

代码语言:javascript
复制
$ 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命令创建两个新组,命令如下所示:

代码语言:javascript
复制
$ sudo groupadd testgroup1
$ sudo groupadd testgroup2

现在,我们将“ testuser”用户添加到上面创建的两个组中,并使用以下命令将“ testuser”用户添加到“ root”组中:

代码语言:javascript
复制
$ sudo usermod -a -G root testuser
$ sudo usermod -a -G testgroup1 testuser
$ sudo usermod -a -G testgroup2 testuser

好的,现在来看一下“ / etc / group”文件,可以看到“ testuser”是这三个组的成员。

代码语言:javascript
复制
$ cat /etc/group
root:x:0:testuser
.............
testuser:x:1001:
testgroup1:x:1002:testuser
testgroup2:x:1003:testuser

找出用户所属的组

我们还可以使用以下两种替代方法来检查用户属于哪个组

代码语言:javascript
复制
$ groups testuser
testuser : testuser testgroup1 testgroup2 root

$ id -nG testuser
testuser testgroup1 testgroup2 root

可以看到输出非常相似,并且这些命令完成的是相同的事情。

使用usermod从组中删除用户

我们可以使用usermod命令一次从一个或多个组中删除一个用户。使用usermod时,您必须指定将用户保留在哪些辅助组中。让我用一个示例来解释一下。

代码语言:javascript
复制
$ groups testuser
testuser : testuser testgroup1 testgroup2 root

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

代码语言:javascript
复制
$ sudo usermod -G root testuser
代码语言:javascript
复制
Results
$ groups testuser
testuser : testuser root

因此,为了将用户划分为更多的组,您需要提及用逗号(,)分隔的组名,例如:

代码语言:javascript
复制
$ sudo usermod -G root,testgroup1 testuser
代码语言:javascript
复制
Results
# groups testuser
testuser : testuser root testgroup1

使用gpasswd从组中删除用户

完成相似结果的另一个命令是gpasswd。与usermod不同,我们使用此命令从指定的组中删除用户。

要从一个特定的组中删除用户,我们可以使用gpasswd命令:

代码语言:javascript
复制
$ 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”文件:

代码语言:javascript
复制
$ 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中删除(编辑后的文件应如下所示):

代码语言:javascript
复制
$ 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:

更改将在重新启动后进行,现在该用户已从这两个组中删除:

代码语言:javascript
复制
$ groups testuser
testuser : testuser root

结论

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

这些指令可以在任何Linux系统(例如Ubuntu、CentOS、Fedora和许多其他系统)上使用。如有任何疑问,请在下面的评论中告诉我们。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SACC开源架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档