Linux offers powerful command-line tools for system administrators to view and manage user accounts. Knowing how to list users efficiently helps you audit your system, monitor access, and ensure proper security configurations.
Listing Users from the /etc/passwd
File
All user information is stored in the /etc/passwd
file. You can display the file content using:
cat /etc/passwd
Each line represents a single user account, containing details like username, UID, GID, home directory, and shell. To extract only usernames, use:
cut -d: -f1 /etc/passwd
This provides a simple list of all users on the system.
Using the getent
Command
The getent
command retrieves entries from administrative databases such as passwd or group. It’s more reliable for systems that use centralized authentication like LDAP.
getent passwd
To show just usernames:
getent passwd | cut -d: -f1
This lists both local and network-based users if the system integrates with directory services.
The compgen
Command
For a quick overview, compgen
is a convenient command:
compgen -u
This outputs all usernames registered on the system. Similarly, to view all groups:
compgen -g
Checking Currently Logged-In Users
To find which users are actively logged in, use:
who
or
w
These commands show user sessions, terminal activity, and login times.
Combining Commands
You can combine commands for better insights. For example, to count total users:
getent passwd | wc -l
This helps administrators track the number of registered accounts.
Conclusion
Mastering command-line techniques for listing users is essential for Linux administrators. Whether using /etc/passwd
, getent
, or compgen
, these commands simplify user auditing and enhance security monitoring.