# How to List Users in Linux

> Learn multiple methods to list users in Linux. This comprehensive guide covers command-line tools, best practices, and advanced techniques for efficient user management in VPS environments.

## Introduction

Managing user accounts is a crucial aspect of Linux system administration, especially in Virtual Private Server (VPS) environments where multiple users may access the system. Whether you're a system administrator, a developer working on a shared server, or simply curious about your Linux system, knowing how to list users is an essential skill. This guide will walk you through various methods to list users in Linux, providing you with the tools you need to effectively manage user accounts on your VPS.

## Understanding User Accounts in Linux

### Types of User Accounts

1. **Regular Users**: Standard accounts for individual users
2. **System Users**: Accounts used by the system for running services and applications
3. **Root User**: The superuser account with unrestricted privileges

### User Information Storage

Linux stores user information primarily in three files:

- `/etc/passwd`: Contains basic user account information
- `/etc/shadow`: Stores encrypted password information
- `/etc/group`: Contains group membership information

## Methods to List Users in Linux

### Method 1: Using the `cat` Command with `/etc/passwd`

The simplest method to view all users on the system.

```bash
cat /etc/passwd
```

Each line in the output represents a user account with fields separated by colons:

```
username:x:UID:GID:comment:home_directory:login_shell
```

### Method 2: Using the `cut` Command

To display only usernames:

```bash
cut -d: -f1 /etc/passwd
```

- `-d:` specifies the delimiter (colon in this case)
- `-f1` selects the first field (username)

### Method 3: Using the `getent` Command

`getent` retrieves entries from Name Service Switch libraries.

```bash
getent passwd
```

This command provides similar output to `cat /etc/passwd` but can include network-based user information.

### Method 4: Using the `compgen` Command

To list all user accounts:

```bash
compgen -u
```

### Method 5: Using the `awk` Command

To list usernames and their login shells:

```bash
awk -F: '{ print $1 " " $7 }' /etc/passwd
```

### Method 6: Using the `who` Command

To see currently logged-in users:

```bash
who
```

### Method 7: Using the `w` Command

For more detailed information about logged-in users:

```bash
w
```

## Advanced User Listing Techniques

### Listing Users with Specific Criteria

1. **Users with login shells**:
   ```bash
   grep -E '^[^:]+:[^:]+:[0-9]+:[0-9]+:[^:]*:[^:]+:/bin/bash' /etc/passwd
   ```

2. **System users (UID < 1000)**:
   ```bash
   awk -F: '$3 < 1000 {print $1}' /etc/passwd
   ```

3. **Regular users (UID >= 1000)**:
   ```bash
   awk -F: '$3 >= 1000 {print $1}' /etc/passwd
   ```

### Creating Custom User Reports

You can use a combination of commands to create custom reports. For example, to list usernames, UIDs, and home directories:

```bash
awk -F: '{print "Username: " $1 "\tUID: " $3 "\tHome: " $6}' /etc/passwd
```

## Best Practices for User Management in VPS

1. **Regular Audits**: Periodically review user accounts to ensure they are still needed
2. **Use Descriptive Usernames**: Choose usernames that clearly identify the user or purpose
3. **Implement Strong Password Policies**: Enforce complex passwords and regular password changes
4. **Limit Superuser Access**: Restrict root access and use sudo for administrative tasks
5. **Monitor User Activities**: Keep logs of user logins and activities

## Diagram: Linux User Information Flow

```
+-------------+     reads     +-------------+
|  System     | <------------ | /etc/passwd |
| Commands    |               +-------------+
| (cat, awk,  |                     ^
|  getent)    |                     |
+-------------+                     |
       |                            |
       | displays                   |
       v                            |
+-------------+               +-------------+
|   User      |     writes    | User Mgmt   |
| Information | <------------ | Tools       |
| Output      |               | (useradd,   |
+-------------+               |  usermod)   |
                              +-------------+
```

This diagram illustrates how various system commands read user information from `/etc/passwd` and how user management tools update this file.

## Conclusion

Understanding how to list and manage users in Linux is crucial for effective system administration, especially in VPS environments. By mastering these methods, you can maintain better control over user accounts, enhance security, and streamline user management processes.

Take action now: Use these commands to audit the user accounts on your VPS. Regularly reviewing and managing user accounts will help ensure the security and efficiency of your Linux system.

## FAQ

### Can I list users without root privileges?
Yes, most methods like `cat /etc/passwd` or `getent passwd` work without root privileges, as `/etc/passwd` is readable by all users.

### How can I determine if a user account is locked?
Check the `/etc/shadow` file (requires root access). A locked account will have an `!` at the beginning of the password field.

### Is there a way to list only human users, excluding system accounts?
You can use `awk -F: '$3 >= 1000 && $7 != "/sbin/nologin" {print $1}' /etc/passwd` to list regular user accounts.

### How do I find out when a user last logged in?
Use the `lastlog` command. For a specific user: `lastlog -u username`.

### Can these methods list users from LDAP or Active Directory?
Commands like `getent passwd` can list users from LDAP or AD if the system is properly configured to use these services.

### How do I count the total number of user accounts?
Use `wc -l` with any of the listing methods, e.g., `cat /etc/passwd | wc -l`.

### Is it possible to list users sorted by their UID?
Yes, you can use `sort` with `awk`, e.g., `getent passwd | sort -t: -k3 -n | awk -F: '{print $1, $3}'`.

## Optional

- URL: https://tildavps.com/en/articles/how-to-list-users-in-linux
- Published: 2024-09-29
- Updated: 2026-07-19
- Available in:
  - de: https://tildavps.com/de/articles/wie-man-benutzer-in-linux-auflistet
  - es: https://tildavps.com/es/articles/como-listar-usuarios-en-linux
  - fr: https://tildavps.com/fr/articles/comment-lister-les-utilisateurs-sous-linux
