Understanding /etc/group File

Can you explain me the format of /etc/group user group file under Linux / UNIX-like operating systems?

/etc/group is a text file which defines the groups to which users belong under Linux and UNIX operating system. Under Unix / Linux multiple users can be categorized into groups. Unix file system permissions are organized into three classes, user, group, and others. The use of groups allows additional abilities to be delegated in an organized fashion, such as access to disks, printers, and other peripherals. This method, amongst others, also enables the Superuser to delegate some administrative tasks to normal users.

/etc/group file

It stores group information or defines the user groups i.e. it defines the groups to which users belong. There is one entry per line, and each line has the following format (all fields are separated by a colon (:)

Fig.01: Sample entry in /etc/group file

Where,

  1. group_name: It is the name of group. If you run ls -l command, you will see this name printed in the group field.
  2. Password: Generally password is not used, hence it is empty/blank. It can store encrypted password. This is useful to implement privileged groups.
  3. Group ID (GID): Each user must be assigned a group ID. You can see this number in your /etc/passwd file.
  4. Group List: It is a list of user names of users who are members of the group. The user names, must be separated by commas.

More About User Groups

Users on Linux and UNIX systems are assigned to one or more groups for the following reasons:

  • To share files or other resource with a small number of users
  • Ease of user management
  • Ease of user monitoring
  • Group membership is perfect solution for large Linux (UNIX) installation.
  • Group membership gives you or your user special access to files and directories or devices which are permitted to that group


(Fig.01: Understanding groups)

User tom is part of both ‘Web developers’ and ‘Sales’ group. So tom can access files belongs to both groups.

Task: View Current Groups Settings

Type any one of the following command:
$ less /etc/group
OR use the more command:
$ more /etc/group
OR use the cat command:
$ more /etc/group

Task: Find Out the Groups a User Is In

Type the following groups command:
$ groups {username}
$ groups
$ groups vivek

Sample outputs:

vivek : vivek adm dialout cdrom plugdev lpadmin netdev admin sambashare libvirtd

Task: Print user / group Identity

Use the id command to display information about the given user.

Display only the group ID, enter:

Use the id command:
$ id -g
$ id -g user
$ id -g vivek

OR
$ id -gn vivek

Display only the group ID and the supplementary groups, enter:

$ id -G
$ id -G user
$ id -G vivek

OR
$ id -Gn vivek

This entry is 3 of 3 in the Linux / UNIX System’s Accounts Files Tutorial series. Keep reading the rest of the series:

  1. Understanding /etc/passwd File Format
  2. Understanding /etc/shadow file
  3. Understanding /etc/group file

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.