150

I added a user account to the admin group and discovered I added wrong user. So I now have to remove the account from the admin group.

How can I remove an account from a group without deleting the user?

Eonil
  • 2,051

4 Answers4

189

Portablejim's answer is accurate but dangerous -- if you typo something, your system may be unusable, especially if you alter the admin group improperly. If you must edit the groups file, use the vipw -g or vigr commands, which verify the syntax before saving. Even then, there are better ways.

From a commandline, the one you probably want to use is the following (as root):

deluser <username> <groupname>

This will remove the specified user from the specified group. You must relogin to see the effect. It will not delete the user, or the group, just the membership. There are also ways of doing it with the usermod command, but it's harder to use as you need to replace the entire list of groups for a user in order to remove a single group. The gpasswd command is also capable of doing this (as sagarchalise points out), but is mostly deprecated. As always, see the man pages for more details.

metakermit
  • 2,640
zanfur
  • 2,737
  • 13
    gpasswd is not deprecated. Its entire purpose is to administer /etc/group and /etc/gshadow. Also, while your method does work, and is mentioned in the deluser man page, it's a bit risky. If you accidentally hit enter before you type the group name, you've remove the user. Better hope you remember its UID so you can add it back quickly. It would be safer to use gpasswd which is designed for this purpose. – Starfish Jul 27 '13 at 23:53
  • 1
    I thought about this risk too. I guess you can always start such a command with a '#', hit enter, and then rerun it while just removing the first character. – ezequiel-garzon Dec 06 '13 at 23:47
  • "You must relogin to see the effect." ...or you could just write: 'cat /etc/group' – josh.thomson Nov 05 '14 at 16:10
  • 1
    I had found deluser while searching man pages (here with Ubuntu 18 in 2018), but the first line in the man page states: "remove a user or group from the system", so I moved on in my search. Clearly the man page needs to be worded better. – tim.rohrer Jun 20 '18 at 03:27
  • I found this answer in an article and immediately the hairs on the back of my neck stood up. I dont know why so many people like and accept this answer, but it's dangerous IMHO; esp as root. Anthony Geoghegan answer is the proper solution; just as Starfish says as well. –  Sep 13 '18 at 01:03
  • 1
    I really dislike this answer, starting with "Portablejim's answer is accurate but dangerous" and then stating deluser as solution where missing the second parameter will immediately delete the user. The "gpasswd" answer is way better in my optinion. – Marcus K. Jan 05 '21 at 08:01
79

You can do this:

sudo gpasswd -d username group

See: http://manpages.ubuntu.com/manpages/focal/en/man1/gpasswd.1.html

-d, --delete user Remove the user from the named group.

sagarchalise
  • 23,988
1

See zanfur's answer.

Edit the /etc/group file as root (i.e. gksudo gedit /etc/group) and remove the username from the line that starts with 'admin'

i.e.

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

becomes

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

Be warned, typos within the file could break your system.

Portablejim
  • 2,748
1

The easiest and safest way:

sudo -H gedit /etc/group

and delete it manually.

Zanna
  • 70,465
vanbran
  • 27