Howto: Linux Add User To Group

by Vivek Gite on March 14, 2006 · 85 comments

How can I add a user to a group under Linux operating system?

You can use the useradd or usermod commands to add a user to a group. The useradd command creates a new user or update default new user information. The usermod command modifies a user account i.e. it is useful to add user to existing group. There are two types of group. First is primary user group and other is secondary group. All user account related information is stored in /etc/passwd, /etc/shadow and /etc/group files to store user information.

useradd Example - Add A New User To Secondary Group

You need to the useradd command to add new users to existing group (or create a new group and then add user). If group does not exist, create it. The syntax is as follows:
useradd -G {group-name} username
In this example, create a new user called vivek and add it to group called developers. First login as a root user (make sure group developers exists), enter:
# grep developers /etc/group
Output:

developers:x:1124:

If you do not see any output then you need to add group developers using groupadd command:
# groupadd developers
Next, add a user called vivek to group developers:
# useradd -G developers vivek
Setup password for user vivek:
# passwd vivek
Ensure that user added properly to group developers:
# id vivekOutput:

uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Please note that capital G (-G) option add user to a list of supplementary groups. Each group is separated from the next by a comma, with no intervening whitespace. For example, add user jerry to groups admins, ftp, www, and developers, enter:
# useradd -G admins,ftp,www,developers jerry

useradd example - Add a new user to primary group

To add a user tony to group developers use following command:
# useradd -g developers tony
# id tony

Sample outputs:

uid=1123(tony) gid=1124(developers) groups=1124(developers)

Please note that small -g option add user to initial login group (primary group). The group name must exist. A group number must refer to an already existing group.

usermod example - Add a existing user to existing group

Add existing user tony to ftp supplementary/secondary group with usermod command using -a option ~ i.e. add the user to the supplemental group(s). Use only with -G option :
# usermod -a -G ftp tony
Change existing user tony primary group to www:
# usermod -g www tony

Featured Articles:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 85 comments… read them below or add one }

1 praj March 26, 2006

How can i run the passwd command
non-interactively in linux . I want to change the password through a script file….How can i
invoke the passwd command thru a script file non-interactively.
If thats not possible then suggest
some alternative…

Reply

2 nixcraft March 26, 2006

See shell script example here

Reply

3 BackSeat August 14, 2006

praj: see chpasswd(8)

Reply

4 BnK December 6, 2006

thanks!

time saving tip for new admin. I can read man page but it is full of shit-load and no examples at all. keep it up good work!

Reply

5 Søren June 19, 2007

I find the easiest way to add a user to a group is using gpasswd like this:
gpasswd -a

Reply

6 Søren June 19, 2007

This editor bugs me :) The command should be:
gpasswd -a user group

Reply

7 Frogbert July 11, 2007

This is wrong, usermod -G ftp tony will take you out of all your existing groups. Not add a new one.

Reply

8 vivek July 12, 2007

Yes I’m adding a existing user to existing group, but to keep user in other old group you need to use:

usermod -G oldgroup1, oldgroup2, ftp tony

Reply

9 vim July 14, 2007

Actually, it’s easier to go like this:

usermod -a -G ftp tony

The -a causes your old groups to be kept. At least in the newer versions. I was looking into this and found an old manpage where the -a function is not documented.

Since I don’t know when this feature was introduced, you should check for it on the man pages before using it.

Reply

10 vivek July 14, 2007

vim,

-a seems to a new option. This FAQ has been updated to include -a.

Appreciate your post!

Reply

11 derry August 7, 2007

I recommend that when you need to add people to an existing group to use

gpasswd -a USER GROUP

Reply

12 Steve Francia August 19, 2007

Using:
usermod (pwdutils) 3.1.2

there is no -a option available, so that options is a fairly new one, it also appears to be nonstandard across *NIX.

Reply

13 rupa August 22, 2007

thanks for -a option, it saved my time on centos

Reply

14 emiat February 1, 2011

tnx a lot

Reply

15 ratna December 16, 2011

R u still in same Domain?

Regards
Ratna

Reply

16 suresh January 7, 2008

why this command didnt work on sun solaris 10 ?
#useradd -u 100 -g other -d /export/home/newuser1 -m -s /bin/ksh -c “Regular User Account ” newuser1

Error :uid 100 already in use

Reply

17 soliver January 25, 2008

Hello,

how can I give a usergroup root rights?
I would like to create a group “developer” but they need root access as well.

thanks,
Oliver

Reply

18 soliver January 25, 2008

I also want to give another user root access.
That way you can do PermitRootLogin yes, which is more secure.

Reply

19 Nilesh January 26, 2008

install sudo.

then edit /etc/sudoers (or other location)

and append the line-

%developer ALL=(ALL) NOPASSWD: ALL

This will give the users in group developer the root access but will need to type

sudo

The above setup will not demand root password

Reply

20 chris March 11, 2008

Now that I foolishly ran:
usermod -G ftp chris

Is there anyway I get access back to all the groups I had before?

I am using Ubuntu so I don’t have a password for the root user.

Reply

21 vivek March 11, 2008

See if you have backup in /etc/group- or restore it from your tape backup.

HTH

Reply

22 chris March 11, 2008

no tape backup and unless the etc/group file is auto backedup I don’t have one of those either.

Reply

23 vivek March 12, 2008
24 LiLo April 30, 2008

Hi,

Is there a way to automatically create a MySQL database when creating the user?

(the new database would be named after the user and with the same login / password)

Reply

25 vivek April 30, 2008

You need to write a shell script; there is no built in option to create mysql db.

Reply

26 LiLo April 30, 2008

OK, so for instance, with webmin which allows the creation of users from a text using useradd, it would not be possible to automatically add a database for each call of useradd without modifying webmin…

That’s not making my life any easier :)

Reply

27 toti May 2, 2008

Hi… newb here ;)
I have a quick question: in CentOS 5, when I type usermod -a -G ftp tony I always get the error “invalid numeric argument ‘ftp’ why is that?

Reply

28 toti May 2, 2008

sorry just read the disclaimer on “leave reply” disregard my question :|

Reply

29 RobM June 6, 2008

If you modified your own user account while logged in with it, the changes will not have an effect until you next login.

If you don’t want to logout, you can replace your current BASH shell with a new one to achieve the same thing by running the follow:

su –preserve-environment –command “$(which $SHELL) –login -i” $(whoami)

This will switch-user to yourself, replacing your current shell with a new instance of itself. You will be prompted for your password.

If you don’t specify a command to run you’ll probably get an error to the effect of “cannot execute bash: file not found” because it won’t be on the environment. You could use –shell to point su at it, but your shell wouldn’t be a “login” shell and therefore won’t read your .bash_profile etc.

Reply

30 kishore June 19, 2008

Hi friends,

I want to say thanks for u.Because of this post i created the users myself without anyones help.

Thanks and Regards
Kishore

Reply

31 helpneeded June 26, 2008

why do we need to add new users in linux?

Reply

32 vivek June 26, 2008

Linux is multiuser operating system. User can maintain their privacy and security.

Reply

33 HAMEED June 27, 2008

WHAT IS THE COMMAND TO CHECK THE EXISTING GROUPS IN THE SYSTEM AND ALSO COMMAND TO CHECK THE USERS ???

Reply

34 itsadok July 5, 2008

There are simpler commands (at least on Ubuntu):

adduser user group
will add an existing user to an existing group

deluser user group
will remove a user from a specified group

Reply

35 David Brown July 6, 2008

In the past when I’ve upgraded to the latest edition of Ubuntu I’ve added any existing users by entering the user name, real name, password etc. into the Users and Groups dialogue boxes and all worked fine.

However with upgrading to Hardy when I do the same an error flags up saying “Home Directory Already Exists – Please enter a different home directory path” and I’ve been unable to re-instate the users.

Can anyone tell me how to add these users

Reply

36 JuLian henDra July 8, 2008

How do I listed all existing users and group by command line in Ubuntu, thanks

Reply

37 vishwas July 8, 2008

how to add two groups in a group
for eg: group1 and group2 these group should be added to another group called group3

Reply

38 functionsys August 21, 2008

whyyyyyyyyy how i can fix it

FunctionSys@FunctionSys-PC ~/mysql
$ groupadd
bash: groupadd: command not found

FunctionSys@FunctionSys-PC ~/mysql
$ /usr/sbin/groupadd
bash: /usr/sbin/groupadd: No such file or directory

FunctionSys@FunctionSys-PC ~/mysql
$ useradd -G {mysql} mysql
bash: useradd: command not found

FunctionSys@FunctionSys-PC ~/mysql
$

Reply

39 Suresh September 22, 2008

Hi Vivek,

your tutorial is really nice to follow.

I have a scenario, where i need to create a super user and subuser(1,2,3) for accessing ftp in our webserver it is linux with redhat on it. so that super user can access all the subuser folders, and subusers can access only their folders respectively.

I haven’t created any of the groups, so i would like to know from scratch like defining users and creating permissions.

since I am new to this linux environment, it would be great if you could post commands like the one above for the scenario i explained.

Many Thanks.
Suresh

Reply

40 eve October 22, 2008

i have 2 group. Group A and Group B.
I have a existing user in Group A.
Now i want to add this existing user to Group B too.
What should i do?

Thanks You.

Reply

41 Aksuli October 31, 2008

Ive managed to add account.

richard@richard-desktop:~$ sudo useradd -G admin,dialout,cdrom,floppy,audio,dip,video,plugdev,fuse,lpadmin aksu
richard@richard-desktop:~$ sudo passwd aksu
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
richard@richard-desktop:~$ id aksu
uid=1001(aksu) gid=1001(aksu) groups=1001(aksu),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(fuse),109(lpadmin),115(admin)

Now I have a problem, when I connect the server says:

Could not chdir to home directory /home/aksu: No such file or directory

How can I manage that to work out right. ATM I can’t use TAB for filling in file/folder names etc.. PLZ help me out :)

Reply

42 vishwas November 3, 2008

Aksuli type this command it will help u

1) richard@richard-desktop:~$ sudo useradd -G admin,dialout,cdrom,floppy,audio,dip,video,plugdev,fuse,lpadmin aksu -d /home/aksu

2) mkdir /home/aksu

Reply

43 kenny November 14, 2008

i type in useradd command but i get the response command not found.what is the problem

Reply

44 Pratik Patel November 15, 2008

Please tell me how can i add multiple users to one group at a single shot.

Reply

45 Ryan November 20, 2008

To add a user to multiple groups – ‘man useradd’

-G, –groups GROUP1[,GROUP2,...[,GROUPN]]]
A list of supplementary groups which the user is also a member of.
Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g option.
The default is for the user to belong only to the initial group.

Reply

46 junaid January 21, 2009

thanks a alot buddy for help……. keep it up

Suggestions::
plz insert search tool with in website…….

GOD bless YOU

Reply

47 hyacinth February 4, 2009

How to delete and add a group..
please help me..

Thanks

Reply

48 dunno February 13, 2009

complete noob with linux here…

what are the actual groups that you can add users to?

i know there’s the ‘users’ group for standard users… but what else is there? can i add a user as a sysadmin with full control over the system? or is that the same as logging in as root?

i also understand it’s apperently a “bad idea” to login as root into KDE… but why?

sorry, like i said, complete noob. just installed yesterday.

oh, and also, even though i realize this isn’t the right place to ask this, i have no idea where else to ask and i’ve been seraching for this for hours… how do you mount a new hard drive? there’s plenty of info telling how to mount a cdrom or a floppy drive, or even a usb thumb drive, but NOWHERE does anything or anyone say how to mount a simple hard drive…. is it not possible to add an additional hard drive? i can’t believe that that would be impossible, so there’s got to be a way.

Reply

49 wasim March 9, 2009

to add user in multiple group

usermod -G group1,group2 username

Reply

50 Patrick March 29, 2009

i have 3 sites. MainSite TestSite and FileSite. Main and Test need to be apart of the FileSite group to be able to read/write/delete files.

usermod -a -G MainSite,TestSite FileSite
is that right?

Reply

51 Aheebwa Edgar May 19, 2009

pliz thanx so much for your ideas but my question was how to add one user to the linux group.am waiting right now.
God bless you

Reply

52 Aheebwa Edgar May 19, 2009

i need just a command to add user to a group.thank you

Reply

53 Snap June 5, 2009

If I have a user that is only used to run scripts (started by fetchmail), but I do not actually ever log in as such user in the console. I have added that user to a group to get access to a folder, but it does not seem to work.. if it was a normal user, I would simply log out and log in again to activate my membership in this group.. but since I never log in with this user, how can I make sure that it is actually a member of the group?

Reply

54 balu phani July 29, 2009

hi
i want to create a user say “testusr” and i don’t want to get home directory for him and his individual group (generally he will belong to his group “testusr” group i don’t want it) but i have already have a common group say “cmngrp” so he should belong to it only.
i think my point is clear
create “testusr” without home directory and without his own group but belongs to “cmngrp”.

Reply

55 balu phani July 29, 2009

i got it
useradd -Ng -M

Reply

56 wasim July 29, 2009

you can check existing group by this command

cat /etc/group | cut -d “:” -f1

Reply

57 yogesh kolte October 28, 2009

it was very helpful to usermod command to modified changes the user

Reply

58 Vlad the Impaler November 8, 2009

To check groups and who is in the group, the easiest is cat /etc/group. Smile!

Reply

59 karim November 21, 2009

Hi ,

Say i have a group called music.

I want every new user henceforth created to automatically have the music group as their secondary group on top of the primary group that will be added by the system.

Is this possible?

Thanks

Reply

60 esraa March 24, 2010

thanks

Reply

61 esraa March 28, 2010

i wante cleared code in shell script programming to add user and add groupe
thanks

Reply

62 zerc May 5, 2010

Hi,

Thank you for this tutorial !

Reply

63 Arvind May 19, 2010

Thank you for this tutorial !

Reply

64 umer ahmed June 5, 2010

good tutorial
thanks
:)

Reply

65 Andey June 5, 2010

i’ve probably used this page like 50 times because i’m still to lazy to learn usermod

Reply

66 Brian Maskell June 9, 2010
67 Vivek Gite June 10, 2010

Thanks for the heads up!

Reply

68 uzer July 4, 2010

Hey, I’m getting
[user@localhost ~]$ sudo su
[sudo] password for user:
user is not in the sudoers file. This incident will be reported.

Reply

69 shane williamson July 7, 2010

Okay these commands DO NOT WORK!!!!!!!!!!!!!!

Reply

70 indir July 9, 2010

thanks, its works for me :)

Reply

71 selven September 15, 2010

seriously, this is so gay! in my days to add a user to a group, we just had to add it in /etc/group! i don’t understand why there should be a “tool” to complicate it!

Reply

72 nic September 16, 2010

I like to use a “for” loop for this. For exampled

for i in group1 group2 group3 ...; do adduser $i; done

Reply

73 Tom O'Connell October 7, 2010

I am using Mint 9 and have no knowledge of either command line or archive manager.
Can you steer me to the easiest tutorial.

Thanks,

Reply

74 dx November 4, 2010

how many users can be in a group? i want to add 500 users to group mailusers. wont that be slowing down my mailserver?

regards

Reply

75 syed December 9, 2010

i have need in one account and multiple sign

Reply

76 NURUL HUDA January 9, 2011

I have lost my all inbox mails unexpectedly.Is it possible to retrive again?please help me.

Reply

77 emiat February 1, 2011

what is the 1st step on how to add group in active directory 2003? And 1st step of how to add group in active directory?

emiat.

Reply

78 Rodislav Moldovan April 3, 2011

#works in Debian 6
Add user to a new group, by keeping old groups
usermod -a -G AdditionalGroup User

-a append
-G group name

Reply

79 Rashid May 12, 2011

thanks for sharing useful and knowledgeable topic

Reply

80 Extra June 27, 2011

Oh yeah man! This is the best site i ever meet, on helping users to quick find the answer to concrete Question! Thank you so much for the FAQ archive! wish you the best thinks.
this is the primary site, that i search for responses to Linux Q’s.

Reply

81 Laxman Rana September 20, 2011

thanks this tutorial to learn about user add with group’s modification…
nicely this iz working on my pc in linux……………

Reply

82 da_fatfinger October 20, 2011

I made the mistake of not including -a in usermod as well, now im locked of doing anything useful in ubuntu. Granted i’m a linux newbie, so hard lessons like this are bound to happen, but you would save many headaches with just a small, clear explanation at the top about how flags (especially -a) are vital to how usermod works. Since you are THE top google hit for “linux add user to group”, you would save a lot of people some serious pain.

Reply

83 Vivek November 9, 2011

Any idea howto add existing group into another existing group ?

Ex: test1 – group has 5 users
test2 – group has 3 users

i want to add test1 group to be part of test2, instead of adding the users.

Reply

84 vlad the impaler December 8, 2011

Can you please emboss, move to top, highlight, make it red and blink FFS !!!
99 % of the people want an user added to an existing group, not moved.
Only on Linux, add is a special type of move (sarcasm).

Please, for this tutorial of yours, that comes up on google, this is what we want:
usermod -a -G ftp tony
not this:
usermod -G ftp tony

Maybe with time we will learn Linux and face this issues more bravely, but most of us that come here have rather trivial experience with Linux, we want to learn.. but we want to learn how to add an user to a group (of course existing, is the natural way) no how to damage our systems.

Call me stupid, but it is the 2nd time I revisit this issue, being forced to again reinstall my linux box because of damaging my sudoers list.

Please, put a big red or whatever flashy warning on top of the article, notifying people about the sudeoers bite.

Reply

85 miquel January 12, 2012

Nice explanation

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 8 + 14 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the simple math so we know that you are a human and not a script.




Previous post:

Next post: