Aloje su propio agente de IA con OpenClaw: instalación gratuita en un solo clic!

Cómo listar todos los usuarios en Linux

How to List All Users in Linux  (Head image)

Saber cómo listar usuarios en Linux es conocimiento básico para cualquier administrador de sistemas, auditor de seguridad o desarrollador. Como Linux es un sistema multiusuario, varias personas y servicios pueden acceder al sistema al mismo tiempo. Tener control sobre esas cuentas garantiza que solo las personas correctas accedan a datos sensibles y recursos del sistema.

Ya sea que estés haciendo una auditoría de rutina o resolviendo problemas de permisos, saber listar usuarios con eficiencia te facilita el trabajo. Esta guía cubre desde la lectura de archivos básicos hasta filtros avanzados y scripts de automatización que funcionan en cualquier distribución de Linux.

Tipos de usuarios en Linux

Antes de ver los comandos, hay que entender los distintos tipos de cuentas que encontrarás en un sistema típico. No todos los usuarios de la lista son personas reales: la mayoría son cuentas dedicadas a procesos en segundo plano.

Usuarios regulares vs. cuentas de sistema

Linux clasifica las cuentas según su función y su UID o GID:

  • Usuario root: El superusuario con UID 0. Esta cuenta puede hacer cualquier cosa sin restricciones sobre comandos o archivos.
  • Cuentas de sistema: El sistema operativo las usa para ejecutar servicios específicos como sshd, messagebus o nginx. Generalmente tienen UIDs entre 1 y 999 y suelen no tener shell de inicio de sesión.
  • Usuarios regulares: Se crean para personas reales. En la mayoría de las distribuciones modernas, estas cuentas empiezan con UID 1000 o mayor.

Archivos de usuario: /etc/passwd y /etc/shadow

La base de datos principal de información de usuarios está en /etc/passwd. Cuando ejecutas cat /etc/passwd, ves una lista de usuarios separados por dos puntos. Cada línea tiene siete campos: nombre de usuario, marcador de contraseña (x), UID, GID, información del usuario, directorio personal y shell de inicio de sesión.

/etc/passwd es legible por todos para que el sistema pueda resolver nombres, pero las contraseñas cifradas reales están en /etc/shadow. Este archivo tiene permisos estrictos: solo el usuario root o quienes tengan privilegios sudo pueden acceder a él.

Requisitos previos

Antes de revisar los usuarios de tu sistema, confirma que tienes los niveles de acceso necesarios. Ver la lista básica de usuarios normalmente no requiere permisos especiales, pero modificar cuentas con el comando useradd o acceder al archivo /etc/shadow sí requiere sudo o acceso root. La mayoría de las herramientas que se mencionan aquí vienen preinstaladas en Debian, Ubuntu, CentOS y Fedora.

Listar todos los usuarios con cat

La forma más directa de ver todas las cuentas registradas en tu sistema es leer el archivo de contraseñas local.

Leer el archivo /etc/passwd

cat /etc/passwd

Este comando vuelca toda la base de datos de usuarios en tu terminal. La salida puede ser abrumadora porque incluye todas las cuentas de servicios del sistema junto con los usuarios reales.

Filtrar usuarios con grep y less

Para buscar usuarios con más precisión, combina la salida con otras herramientas. Para buscar un nombre específico:

grep "nombre_de_usuario" /etc/passwd

Para recorrer la lista de forma paginada:

cat /etc/passwd | less

Listar usuarios con getent

Mientras que cat lee un archivo específico, getent es la opción más completa en sistemas modernos.

Consultar bases de datos locales y LDAP

getent passwd

Este comando no solo revisa /etc/passwd: consulta la configuración de NSS (Name Service Switch), lo que significa que lista usuarios de archivos locales y de bases de datos en red como LDAP o NIS. Si tu sistema forma parte de una red corporativa, esta es la forma definitiva de listar usuarios y grupos.

Obtener detalles de un usuario específico

getent passwd nombre_de_usuario

Devuelve únicamente el registro de ese usuario, sin tener que buscar entre cientos de líneas.

Listar nombres de usuario con compgen

Si solo necesitas una lista de nombres sin UID ni directorio personal, compgen es la opción más limpia:

compgen -u

Genera una lista simple de todos los nombres de usuario. Es especialmente útil en scripts donde necesitas iterar sobre usuarios sin parsear cadenas complejas.

Salida personalizada con awk y cut

A veces solo necesitas columnas específicas, como el nombre de usuario y su shell asignado.

Extraer nombres de usuario con awk

awk es ideal para archivos separados por dos puntos. Para mostrar solo el primer campo (nombre) y el tercer campo (UID):

awk -F: '{ print $1 " " $3 }' /etc/passwd

Esto te ayuda a verificar permisos rápidamente e identificar a qué rangos de ID pertenece cada usuario.

Extraer nombres de usuario con cut

cut es más simple que awk. Para mostrar solo los nombres de usuario:

cut -d: -f1 /etc/passwd

Ideal cuando necesitas obtener los nombres rápido y canalizarlos a otro proceso.

Verificar usuarios conectados

La lista completa te dice quién tiene acceso. Para saber quién está activo en este momento:

Los comandos who y users

who

Muestra una lista de sesiones activas, incluyendo el terminal y la hora de inicio de sesión. Si solo quieres los nombres de usuario actuales en una lista simple:

users

Monitorear la actividad con el comando w

w

Muestra los usuarios conectados, lo que están haciendo (tiempos JCPU y PCPU) y su dirección IP remota si se conectaron por SSH. Es indispensable para monitorear la carga del sistema y la seguridad.

Listar usuarios por UID, grupo y shell

La gestión avanzada de usuarios requiere filtrar cuentas según sus atributos.

Listar usuarios por rango de UID

Para mostrar solo usuarios regulares (UID 1000 o mayor):

awk -F: '$3 >= 1000 {print $1}' /etc/passwd

Esto te ayuda a distinguir cuentas de personas reales de cuentas de servicios del sistema.

Listar usuarios por grupo

Para ver a qué usuarios pertenece un grupo específico, revisa /etc/group o usa:

getent group nombre_del_grupo

Entender los grupos y su membresía es fundamental para mantener controles de acceso bien definidos por departamento.

Encontrar usuarios con acceso sudo

Saber quién tiene poder administrativo es el primer paso de cualquier auditoría de seguridad:

getent group sudo

Buenas prácticas para listar usuarios

Mantener un sistema seguro requiere auditorías regulares y seguir las mejores prácticas de gestión de usuarios.

Combinar comandos con pipes

La fortaleza de Linux está en combinar herramientas. Puedes listar todos los usuarios y contarlos al mismo tiempo:

cut -d: -f1 /etc/passwd | wc -l

Esto te permite verificar si el número coincide con lo que esperas.

Usar una GUI para la gestión de usuarios

En entornos de escritorio como GNOME o KDE, puedes gestionar permisos desde «Configuración» o «Usuarios». Menos flexible que la línea de comandos, pero es una opción visual útil para quienes están comenzando.

Auditar y asegurar las cuentas

Auditar tus cuentas de sistema y el usuario root regularmente es innegociable. Asegúrate de que ningún usuario no autorizado tenga UID 0 y que las cuentas de servicios tengan su shell configurado en /sbin/nologin para prevenir accesos no autorizados.

Automatizar el listado de usuarios con scripts Bash

En entornos con muchos servidores, las revisiones manuales son ineficientes. Los scripts te permiten listar usuarios en múltiples servidores a la vez.

Escribir un script de auditoría de usuarios

Un script simple puede recorrer /etc/passwd y marcar cuentas con permisos elevados, convirtiendo el listado de usuarios en datos accionables.

Programar auditorías con cron

Al programar estos scripts con cron, automatizas la gestión de usuarios y recibes alertas cada vez que se crea una cuenta nueva con el comando useradd.

Preguntas frecuentes

¿Cómo listo todos los usuarios en Linux?

Puedes usar getent passwd o cat /etc/passwd para listar todos los usuarios del sistema.

¿Cómo verifico qué usuarios están conectados?

Usa el comando who o w para ver los usuarios activos y lo que están haciendo.

¿Cómo listo usuarios y grupos en Linux?

El comando getent group muestra todos los grupos del sistema con sus miembros.

¿Qué comando lista usuarios en Linux?

El comando más común para obtener una lista simple de nombres es cut -d: -f1 /etc/passwd.

¿Cómo verifico si un usuario existe en Linux?

Ejecuta id nombre_de_usuario o getent passwd nombre_de_usuario.

¿Cómo veo todos los usuarios en Linux?

Usa getent passwd o cat /etc/passwd para mostrar la base de datos completa de usuarios.

¿Qué es la seguridad de usuarios en Linux?

La seguridad de usuarios en Linux implica controlar el acceso mediante permisos correctos, auditorías regulares y garantizar que solo las cuentas autorizadas tengan privilegios elevados.

Scroll al inicio