Share your love
How To List Users and Groups in Linux

In this guide, we want to teach you How To List Users and Groups in Linux.
Users and groups are used on GNU/Linux for access control—that is, to control access to the system’s files, directories, and peripherals.
A user is anyone who uses a computer. Users may be grouped together into a “group”, and users may be added to an existing group to utilize the privileged access it grants.
How To List Users and Groups in Linux
There are several ways to list users and groups on Linux with the Linux Commands. Let’s see what are they.
List Users with /etc/passwd File in Linux
The /etc/passwd file is used to keep track of every registered user that has access to a system. Each line in this file represents login information for one user. To see the information on this file, you can use the cat command:
cat /etc/passwd
You will get something similar to this:
Output
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
....
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
orca:x:1000:1000::/home/orca:/bin/bash
olivia:x:1001:1001::/home/olivia:/bin/bash
Also, you can use the “less” or the “more” command in order to navigate within the username list.
$ less /etc/passwd $ more /etc/passwd
Each line in the file has seven fields delimited by colons that contain the following information:
- User name.
- Encrypted password (
x
means that the password is stored in the/etc/shadow
file). - User ID number (UID).
- User’s group ID number (GID).
- Full name of the user (GECOS).
- User home directory.
- Login shell (defaults to
/bin/bash
).
If you want to show only the usernames, you can use the cut command as shown below:
cat /etc/passwd | cut -d: -f1
You will see:
Output
root
bin
daemon
adm
...
postfix
chrony
orca
olivia
Or you can use the awk command instead of the cut command to list the usernames in Linux:
cat /etc/passwd | awk -F: '{print $1}'
You will get similar output from the cut command.
List Users with the getent Command
The easiest way to list users in Linux is to use the “getent” command with the “passwd” argument and specify an optional user that you want to list on your system.
getent is a Linux command that helps the user to get the entries in a number of important text files called databases. This includes the passwd and the group of databases that store the user information.
To get a list of all Linux users, run the following command:
getent passwd
The output will be the same as when displaying the content of the /etc/passwd
file.
If you are using LDAP for user authentication, the getent
will display all Linux users from both /etc/passwd
file and LDAP database.
You can also use awk
or cut
to print only the first field containing the username:
getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1
Now that we know how to list all users, to check whether a user exists in our Linux box we, can simply filter the users’ list by piping the list to the grep
command.
For example, to find out if a user with the name orca
exists in our Linux system we can use the following command:
getent passwd | grep orca
Output
orca:x:1000:1000::/home/orca:/bin/bash
We can also check whether a user exists without using the grep
command as shown below:
getent passwd orca
Same as before, if the user exists, the command will display the user’s login information.
If you want to find out how many users accounts you have on your system, pipe the getent passwd
output to the wc
command:
getent passwd | wc -l
Output
21
Note: To list all the connected users on your Linux system, you can use the command below:
who
This will provide you a list of users currently connected on your host along with the shell they are using and when they connected.
List Groups with /etc/group File
It is the same as the listing users.
To see the information on this file, you can use the cat command:
cat /etc/group
You will get something similar to this:
Output
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
...
chrony:x:996:
orca:x:1000:
olivia:x:1001:
As you can see, inspecting the /etc/group gives you a complete and sometimes too detailed listing of all the groups on your system.
If you want to show only the group names, you can use the cut command as shown below:
cat /etc/group | cut -d: -f1
Output
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
wheel
...
postfix
chrony
orca
olivia
Or you can use the awk command:
cat /etc/group | awk -F: '{print $1}'
List Groups with the genet Command
To get a list of all Linux groups, run the following command:
getent group
The output will the same as when displaying the content of the /etc/group
file.
Similar to the passwd database, you can choose to “target” one specific group by providing a key to the getent function. For example:
getent group sudo
Conclusion
At this point, you learn to list users and groups in Linux and filter them in your system.
Hope you enjoy it.
You may be interested in these articles:
How To Check Memory Usage on Linux
Use Bash wait Command on Linux
Configure Automatic Kernel Updates on Linux