如何从组中删除用户?


107

我向该admin组添加了一个用户帐户,发现我添加了错误的用户。因此,我现在必须从该admin组中删除该帐户。

如何在不删除用户的情况下从组中删除帐户?

Answers:


143

Portablejim的答案是准确的,但很危险-如果您输入错误,则系统可能无法使用,尤其是如果您不正确地更改了管理员组。如果必须编辑组文件,请使用vipw -gvigr命令,在保存之前先验证语法。即使那样,也有更好的方法。

在命令行中,您可能要使用以下命令(以root用户身份):

deluser <username> <groupname>

这将从指定的组中删除指定的用户。您必须重新登录才能看到效果。它不会删除用户或组,仅删除成员身份。也有使用该usermod命令执行此操作的方法,但是使用起来比较困难,因为您需要为用户替换整个组列表以删除单个组。该gpasswd命令也可以执行此操作(如sagarchalise所指出的),但该命令已被弃用。与往常一样,请参见手册页以获取更多详细信息。


9
gpasswd不推荐使用。它的全部目的是管理/ etc / group和/ etc / gshadow。同样,虽然您的方法确实有效,并且在deluser手册页中有所提及,但这样做有些冒险。如果您在输入组名之前不小心按下Enter键,则将删除该用户。最好希望您记住它的UID,以便您可以将其快速添加回去。使用为此目的设计的gpasswd会更安全。
海星

1
我也考虑过这种风险。我想您总是可以使用“#”开始这样的命令,按Enter,然后在删除第一个字符的同时重新运行它。
ezequiel-garzon 2013年

“您必须重新登录才能看到效果。” ...或者你可以这样写: '猫/ etc / group文件'
josh.thomson

deluser在搜索手册页时发现的(在2018年使用Ubuntu 18),但手册页的第一行指出:“从系统中删除用户或组”,因此我继续进行搜索。显然,手册页的措词需要更好。
tim.rohrer

我在一篇文章中找到了这个答案,然后脖子上的头发立即站起来了。我不知道为什么这么多人喜欢并接受这个答案,但这是危险的恕我直言;esp作为根。Anthony Geoghegan的答案是正确的解决方案。就像海星所说的

46

你可以这样做:

sudo gpasswd -d username group

您还应该查看gpasswd手册


4
优点之一gpasswd是它具有更多的跨平台功能,并且可以在基于Red Hat的发行版上使用。
Anthony Geoghegan

这是正确的答案。如果只是上升到顶部。

您可以编辑答案以解释-d标志的作用吗?(无论如何,我投票给它是最佳答案!谢谢!)
Aerendir

2

最简单,最安全的方法:

sudo -H gedit /etc/group

并手动删除它。


我看到这一点。这里ssh:x:118: 的数字是什么意思118
ankit7540

绝对不是最安全的方法!
callmebob

2

请参阅zanfur的答案。

/etc/group以根gksudo gedit /etc/group用户身份编辑文件(即),并从以“ admin”开头的行中删除用户名

...
admin:x:120:adminuser,adminuser2,userthatshouldnotbeadmin
...

变成

...
admin:x:120:adminuser,adminuser2
...

警告,文件中的错字可能会破坏系统。


11
请不要建议手动编辑这些系统文件。万一您搞砸了系统,则可能无法访问。
gertvdijk 2012年

或者至少先备份它们。(相关信息。
Eliah Kagan 2013年

2
我认为您应该发布此文章,因为它是对Linux工作原理的宝贵见解。但是,应包含一条警告,指出存在更安全的方法
Freedom_Ben 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.