Linux uses groups in order to share resources in a easy way. In general a resource will have a user, group and other access rights. In this tutorial we will learn how to add user to a Linux group and its variations like creating group, deleting group, listing group members etc.
Linux groups are organizational units used to organize and administrator user account and rights. Especially for privilege and access management like reading, writing, executing permissions for a given resource or login into a system can be managed with groups by allowing some group and denying some group.
There are two type of groups in Linux operating system like below.
Primary Group is the user first chose group which means if a user creates a file the file group will be assigned to the user primary group. If a user try to use some resources first the primary group will be checked. Primary group information can be viewed in the
/etc/passwd file like below.
$ cat /etc/passwd
The 5th column provides the primary group information. As we can see some users do not have primary group because they are nor operational and used by operating system so they do not needs primary group.
Secondary or Supplementary Group
Secondary group is used to provide access rights for other resources which is not the user primary group. For example a file created by other user with the different primary group can be shared by using secondary group. A user may have multiple secondary groups.
Change or Add Existing User To A Primary Group
We will start by adding an existing user to ta primary group. Caution because this will change the primary group of the user which can create problems because of the file and folder ownership and access restrictions. We will use
usermod command with
-g option with a primary group name and
-a to append .
In this example we will add user
ismail to the group named
ali as primary group.
$ sudo usermod -a -g ali ismail
Add Existing User To A Secondary Group
We will start by adding existing user to a existing group. We will use
usermod is a command used to manage users and groups. We will also provide
-a which means append and
-G where we will specify the group we want to add the user.
In this exmaple we will add user
ismail to the group
syslog as secondary group.
$ sudo usermod -G syslog ismail
Add Existing User To Multiple Groups
In some cases we may need to add a user into multiple groups with a single command. Actually we will use the same command and parameters used for single group. We will delimit the group names with
In this example we will add user
ismail into multiple secondary groups
$ sudo usermod -a -G root,sudo,syslog ismail
Remove User From Group
We can remote a user from a group. This group can be primary or secondary group. We will use
gpasswd with the
-d option. In this example we will remote user
ismail from group
$ sudo gpasswd -d ismail syslog
List Existing Groups
Linux group information is stored in the file
/etc/group . We can list this file like below which will provide the groups.
$ cat /etc/group
List Existing Groups with getent Command
Another good command to list existing groups is
getent command by providing the
$ getent group
If we need to add a new group before adding a user to this group we need to create it. We will create new group with the
groupadd . In this example we will create a group named
$ sudo groupadd test
We can delete existing user group with the
groupdel command. In this example we will delete the group named
$ sudo groupdel test
Create New User and Assign A Group with Single Command
There may be some scenarios where we need to create a user and assign groups to this user multiple groups. We will use
useradd we will specify the primary user group with
-g parameter and secondary groups with
$ sudo useradd -g ismail -G wheel,developers ismail
Display User Group with id Command
We can display existing user groups with different commands.
id command is a basic command which will list user name, user primary group, user secondary group and related id.
Display User Group with groups Command
Another command which can list current user groups is