# Cómo Listar Usuarios en Linux

> Aprende múltiples métodos para listar usuarios en Linux. Esta guía completa cubre herramientas de línea de comandos, mejores prácticas y técnicas avanzadas para una gestión eficiente de usuarios en entornos VPS.

## Introducción

La gestión de cuentas de usuario es un aspecto crucial de la administración de sistemas Linux, especialmente en entornos de Servidores Privados Virtuales (VPS) donde múltiples usuarios pueden acceder al sistema. Ya seas un administrador de sistemas, un desarrollador trabajando en un servidor compartido, o simplemente curioso acerca de tu sistema Linux, saber cómo listar usuarios es una habilidad esencial. Esta guía te mostrará varios métodos para listar usuarios en Linux, proporcionándote las herramientas necesarias para gestionar eficazmente las cuentas de usuario en tu VPS.

## Entendiendo las Cuentas de Usuario en Linux

### Tipos de Cuentas de Usuario

1. **Usuarios Regulares**: Cuentas estándar para usuarios individuales
2. **Usuarios del Sistema**: Cuentas utilizadas por el sistema para ejecutar servicios y aplicaciones
3. **Usuario Root**: La cuenta de superusuario con privilegios ilimitados

### Almacenamiento de Información de Usuario

Linux almacena la información de usuario principalmente en tres archivos:

- `/etc/passwd`: Contiene información básica de la cuenta de usuario
- `/etc/shadow`: Almacena información de contraseña encriptada
- `/etc/group`: Contiene información de membresía de grupo

## Métodos para Listar Usuarios en Linux

### Método 1: Usando el Comando `cat` con `/etc/passwd`

El método más simple para ver todos los usuarios en el sistema.

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

Cada línea en la salida representa una cuenta de usuario con campos separados por dos puntos:

```
nombre_de_usuario:x:UID:GID:comentario:directorio_home:shell_de_inicio
```

### Método 2: Usando el Comando `cut`

Para mostrar solo nombres de usuario:

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

- `-d:` especifica el delimitador (dos puntos en este caso)
- `-f1` selecciona el primer campo (nombre de usuario)

### Método 3: Usando el Comando `getent`

`getent` recupera entradas de las bibliotecas Name Service Switch.

```bash
getent passwd
```

Este comando proporciona una salida similar a `cat /etc/passwd` pero puede incluir información de usuario basada en red.

### Método 4: Usando el Comando `compgen`

Para listar todas las cuentas de usuario:

```bash
compgen -u
```

### Método 5: Usando el Comando `awk`

Para listar nombres de usuario y sus shells de inicio de sesión:

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

### Método 6: Usando el Comando `who`

Para ver los usuarios actualmente conectados:

```bash
who
```

### Método 7: Usando el Comando `w`

Para obtener información más detallada sobre los usuarios conectados:

```bash
w
```

## Técnicas Avanzadas de Listado de Usuarios

### Listando Usuarios con Criterios Específicos

1. **Usuarios con shells de inicio de sesión**:
   ```bash
   grep -E '^[^:]+:[^:]+:[0-9]+:[0-9]+:[^:]*:[^:]+:/bin/bash' /etc/passwd
   ```

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

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

### Creando Informes de Usuario Personalizados

Puedes usar una combinación de comandos para crear informes personalizados. Por ejemplo, para listar nombres de usuario, UIDs y directorios home:

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

## Mejores Prácticas para la Gestión de Usuarios en VPS

1. **Auditorías Regulares**: Revisa periódicamente las cuentas de usuario para asegurarte de que aún son necesarias
2. **Usa Nombres de Usuario Descriptivos**: Elige nombres de usuario que identifiquen claramente al usuario o su propósito
3. **Implementa Políticas de Contraseñas Fuertes**: Impón contraseñas complejas y cambios regulares de contraseña
4. **Limita el Acceso de Superusuario**: Restringe el acceso root y usa sudo para tareas administrativas
5. **Monitorea las Actividades de Usuario**: Mantén registros de inicios de sesión y actividades de usuarios

## Diagrama: Flujo de Información de Usuario en Linux

```
+-------------+     lee       +-------------+
|  Comandos   | <------------ | /etc/passwd |
| del Sistema |               +-------------+
| (cat, awk,  |                     ^
|  getent)    |                     |
+-------------+                     |
       |                            |
       | muestra                    |
       v                            |
+-------------+               +-------------+
| Información |    escribe    | Herramientas|
| de Usuario  | <------------ | de Gestión  |
| Salida      |               | de Usuarios |
+-------------+               | (useradd,   |
                              |  usermod)   |
                              +-------------+
```

Este diagrama ilustra cómo varios comandos del sistema leen información de usuario de `/etc/passwd` y cómo las herramientas de gestión de usuarios actualizan este archivo.

## Conclusión

Entender cómo listar y gestionar usuarios en Linux es crucial para una administración efectiva del sistema, especialmente en entornos VPS. Al dominar estos métodos, puedes mantener un mejor control sobre las cuentas de usuario, mejorar la seguridad y optimizar los procesos de gestión de usuarios.

Actúa ahora: Usa estos comandos para auditar las cuentas de usuario en tu VPS. Revisar y gestionar regularmente las cuentas de usuario ayudará a garantizar la seguridad y eficiencia de tu sistema Linux.

## FAQ

### ¿Puedo listar usuarios sin privilegios de root?
Sí, la mayoría de los métodos como `cat /etc/passwd` o `getent passwd` funcionan sin privilegios de root, ya que `/etc/passwd` es legible por todos los usuarios.

### ¿Cómo puedo determinar si una cuenta de usuario está bloqueada?
Verifica el archivo `/etc/shadow` (requiere acceso root). Una cuenta bloqueada tendrá un `!` al principio del campo de contraseña.

### ¿Hay alguna forma de listar solo usuarios humanos, excluyendo cuentas del sistema?
Puedes usar `awk -F: '$3 >= 1000 && $7 != "/sbin/nologin" {print $1}' /etc/passwd` para listar cuentas de usuario regulares.

### ¿Cómo puedo averiguar cuándo un usuario inició sesión por última vez?
Usa el comando `lastlog`. Para un usuario específico: `lastlog -u nombre_de_usuario`.

### ¿Pueden estos métodos listar usuarios de LDAP o Active Directory?
Comandos como `getent passwd` pueden listar usuarios de LDAP o AD si el sistema está configurado correctamente para usar estos servicios.

### ¿Cómo cuento el número total de cuentas de usuario?
Usa `wc -l` con cualquiera de los métodos de listado, por ejemplo, `cat /etc/passwd | wc -l`.

### ¿Es posible listar usuarios ordenados por su UID?
Sí, puedes usar `sort` con `awk`, por ejemplo, `getent passwd | sort -t: -k3 -n | awk -F: '{print $1, $3}'`.

## Optional

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