====== Add User to Group ======
How can I add a user to a group under Linux operating system using command line options? How to add an existing user into a group in Linux using command line options?
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 and it is useful to add user to existing groups. There are two types of groups under Linux operating systems:
- Primary user group.
- Secondary or supplementary user group.
All user account related information are stored in the following files:
- /etc/passwd - Contains one line for each user account.
- /etc/shadow - Contains the password information in encrypted formatfor the system's accounts and optional account aging information.
- /etc/group - Defines the groups on the system.
- /etc/default/useradd - This file contains a value for the default group, if none is specified by the useradd command.
- /etc/login.defs - This file defines the site-specific configuration for the shadow password suite stored in /etc/shadow file.
===== 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 the 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 vivek
Output:
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 the following command:
# useradd -g developers tony
# id tony
Sample outputs:
uid=1123(tony) gid=1124(developers) groups=1124(developers)
Please note that small g (-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 the usermod command using the -a option ~ i.e. add the user to the supplemental group(s). Use only with -G option:
# usermod -a -G ftp tony
In this example, change tony user's primary group to www, enter:
# usermod -g www tony