How to Add a User to a Group in Linux
How to add user to a Group?
Changing the groups a user belongs to is a fundamental, and basic task, but not everyone is aware of how to. We will be going through this with you in this tutorial.
Linux Groups
Groups are organization units used by Linux, to organize and administer user accounts. The primary purpose of a group is to define privileges such as reading, writing, and executing permissions.
Groups are mainly of two types:
- Primary Group: When a file is created, the group specified in the
**/etc/passwd**file for the current user, is used as the owner group. Usually, it is a group of the same name as that of the user. - Secondary Group: Useful when certain permissions are to be granted to set members of a group. For example, if a user is added to the
dockergroup, they will be able to executedockercommands now.
Each user belongs to only one primary group, but many secondary groups.
Only root or users with **sudo** access can edit the groups a user belongs to.
Adding an existing user to a Group
If we already have the user, and the group set up, and we want to add the user, we could use either of **usermod**, or **gpasswd** ( a safer option to avoid dangerous mistakes ). For example, we want to add the user dakksh, to the group docker, we would run
sudo usermod -a -G docker dakksh # -a represents append. Leaving out -a, will remove user from all other groups
sudo gpasswd -a dakksh docker # Add user to group dockerOn success, there is no output, but an error message is displayed if the user or group does not exist.

Adding a user to multiple Groups
If we want to add a user to multiple groups, we provide a comma-separated list for the -G flag in the **usermod** command. Hence to add the user dakksh, to groups docker, and sambashare we run the following command
sudo usermod -a -G docker,sambashare dakksh
Removing a user from a Group
To remove a user from a group, we can run use the -d flag with the **gpasswd** command. Hence to remove the user dakksh from the group docker, we run
sudo gpasswd -d dakksh docker
Create a new Group
To create a new group, we run **groupadd**, in the following manner.
sudo groupadd groupNameDelete a Group
To delete a group, we run **groupdel**, in the following manner
sudo groupdel groupNameChange primary group of a user
To change the **gid** of a user, we use the **usermod** command, with the -g flag. The parameter passed to -g flag can be either a group name or a GID. Hence, to change the default group of the current user to **sudo**, we would do
sudo usermod -g sudo dakksh
Create a user and assign groups simultaneously
To create a user, we can use the **useradd** command, but we can not only create a user using this command. We can assign groups, and even specify the primary group of a user with this command. For example, we want to create a user vim assigned to the groups sudo, docker, sambashare, and having the primary group as dakksh (GID 1000), we would run the following command.
sudo useradd -g 1000 -G sudo,docker,sambashare vimList user groups
Using **id** or **groups** we can list the user groups, both primary and secondary. **id** is run in the following format.
id [OPTIONS] [USER]Running the **id** command alone gives uid, gid, and groups.

Using the options parameter, with either of -u, -g, or -G, combined or separate gives uid, gid, and groups respectively in their numerical form.

With the -n flag, we get the names of the numerical ids returned by **id**. To get groups of a specific user, we specify the username.

To get groups using the **groups** command, the format is the following.
groups [USER]
By default, if a user is not mentioned, **id** and **groups** both use the current user.
Conclusion
We have seen how to add a user to a secondary group or modify their primary group using the **gpasswd**, and the **usermod** commands.
Also covered is how to create a user and simultaneously assign groups, and how to list groups the user is a part of.










