Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Para ver quién tiene una sesión registrada en el equipo, ejecuta users. Si necesitas terminal, hora y demás datos de cada sesión, usa who. Para consultar las cuentas locales, lee /etc/passwd; para conocer el UID, GID y grupos de la identidad con la que se ejecuta tu proceso, usa id. En equipos con systemd-logind también puedes consultar loginctl list-users y loginctl list-sessions.

Estos comandos no son equivalentes: una cuenta registrada no implica que haya iniciado sesión, y id describe una identidad concreta en lugar de enumerar usuarios.

Primero define qué significa «ver usuarios»

En Linux, la misma pregunta puede referirse a tres conjuntos diferentes:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Cuentas existentes: registros que el sistema puede resolver como cuentas. Las cuentas locales se describen en /etc/passwd, pero una instalación también puede obtener identidades mediante servicios como NIS o LDAP.
  • Sesiones activas o registradas: usuarios que tienen una sesión anotada en el host. users muestra solo nombres y who añade información de sesión.
  • Identidad del proceso actual: UID, GID y grupos efectivos o reales con los que funciona un proceso. id responde a esta pregunta.

Elegir la fuente correcta evita conclusiones erróneas: encontrar una línea en /etc/passwd no demuestra que esa cuenta esté conectada, del mismo modo que ver un nombre en users no enumera todas las cuentas disponibles.

Ver rápidamente quién está conectado con users

Ejecuta:

users

El comando imprime los nombres de las personas con usuarios conectados al host actual. La implementación documentada por Linux man-pages lee, si no se indica otro archivo, /var/run/utmp; ese archivo contiene los registros de sesiones que el sistema mantiene para este propósito. La definición de users(1) en Linux man-pages es «users – print the user names of users currently logged in to the current host».

La salida es deliberadamente breve. Una salida como ana pedro ana debe leerse como nombres presentes en los registros de sesiones, no como una lista deduplicada de cuentas. Si necesitas saber qué terminal usa cada entrada o cuándo comenzó la sesión, pasa a who.

Cuándo es suficiente

  • Comprobar rápidamente si hay alguna sesión registrada.
  • Usar la salida en un script sencillo que solo necesite nombres.
  • Confirmar que una conexión remota aparece en los registros de usuario.

Qué no te dice

users no muestra UID, grupos, directorio personal ni shell. Tampoco prueba que todas las cuentas del sistema estén conectadas: solo consulta el estado de sesiones registrado en utmp.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Obtener terminal y hora con who

Para una vista detallada, ejecuta:

who

who lista las sesiones registradas y puede mostrar, entre otros datos, nombre de inicio de sesión, terminal, hora de inicio e inactividad. Su fuente predeterminada también es /var/run/utmp. La documentación de who(1) describe además /var/log/wtmp, que suele utilizarse cuando se le proporciona explícitamente un archivo para consultar un historial de registros.

Una línea típica contiene varias columnas separadas por espacios. No dependas de posiciones exactas si vas a procesarla automáticamente: los campos visibles pueden variar según la implementación y las opciones. Para una inspección humana, en cambio, la salida permite distinguir dos sesiones del mismo nombre en terminales distintas.

Elegir who frente a users

  • Usa users para una respuesta de una sola línea con nombres.
  • Usa who para relacionar cada nombre con su terminal y hora.
  • Usa la información de utmp como registro de sesiones, no como inventario de cuentas.

Si el resultado parece incompleto, comprueba qué componente inició la sesión y si la registró en utmp. Una sesión gráfica, un servicio o una conexión gestionada de forma particular puede no aparecer igual que una terminal que actualiza ese archivo.

Listar las cuentas locales en /etc/passwd

Para leer las cuentas definidas localmente, ejecuta:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
cat /etc/passwd

Cada línea describe una cuenta de inicio de sesión y contiene siete campos separados por dos puntos. La página de manual de passwd(5) define este archivo como un fichero de texto que describe las cuentas de inicio de sesión del sistema.

Orden Campo Qué representa
1 Nombre de inicio de sesión El nombre con el que se identifica la cuenta.
2 Campo de contraseña El campo reservado para la información de contraseña.
3 UID Identificador numérico del usuario.
4 GID Identificador numérico del grupo principal.
5 Campo informativo Información descriptiva asociada a la cuenta.
6 Directorio personal Ruta del directorio de inicio del usuario.
7 Shell Programa de shell configurado para la cuenta.

El archivo puede incluir cuentas utilizadas por servicios, además de las cuentas de personas. Por eso, el número de líneas no equivale al número de usuarios humanos que pueden iniciar sesión.

Buscar una cuenta concreta sin recorrer toda la salida

Si conoces el nombre exacto, filtra el comienzo de la línea:

grep '^nombre:' /etc/passwd

Sustituye nombre por la cuenta que buscas. El carácter ^ exige que el texto aparezca al principio y los dos puntos evitan coincidir con nombres que solo contienen esa cadena en otra posición. Si no aparece ninguna línea, esa cuenta no está definida en el archivo local; no significa necesariamente que no exista en una fuente de identidad centralizada.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Por qué /etc/passwd puede no mostrar a todos

La base de usuarios que consulta un sistema no tiene por qué limitarse al archivo local. La función de biblioteca descrita en getpwent(3) permite recorrer la base de cuentas configurada, que puede integrar fuentes como NIS o LDAP. Esas fuentes dependen de la configuración concreta del equipo.

En una estación o servidor con identidades centralizadas, revisa la configuración de resolución de usuarios y utiliza las herramientas previstas por esa instalación. No deduzcas que una cuenta está ausente del sistema solo porque no aparece en /etc/passwd; ese archivo representa las cuentas locales.

Comprobar tu propia identidad y tus grupos con id

Sin argumentos, ejecuta:

id

El comando informa de la identidad del proceso actual: normalmente muestra el nombre de usuario, su UID, el grupo principal y los grupos suplementarios. Para consultar otra cuenta, añade su nombre:

id nombre

Esto no abre una sesión ni cambia de usuario; solo consulta los datos de la cuenta indicada. Las opciones de id permiten solicitar únicamente UID, GID o grupos, y escoger entre nombres o identificadores numéricos. Por ejemplo:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
id -u
id -g
id -G

id -u deja solo el UID, id -g el GID principal y id -G la lista de grupos. La página de manual de id(1) documenta estas modalidades y la distinción entre identificadores numéricos y nombres.

Cuándo usar id en lugar de los otros comandos

  • Verificar con qué cuenta se ejecuta un script o una terminal.
  • Comprobar por qué una operación falla por pertenencia a grupos.
  • Obtener un UID o GID para una regla, permiso o archivo.

Si quieres saber qué otras cuentas existen, id no es la herramienta adecuada: con el argumento omitido consulta el proceso actual, no enumera usuarios.

Consultar usuarios y sesiones con systemd

En sistemas que ejecutan systemd-logind, puedes consultar su vista de sesiones:

loginctl list-users
loginctl list-sessions

loginctl list-users muestra los usuarios conectados según el gestor de inicio de sesión y loginctl list-sessions enumera las sesiones actuales. La documentación de loginctl(1) corresponde a la interfaz de systemd para estas consultas.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cuándo elegir loginctl

  • Cuando el equipo usa systemd-logind y quieres contrastar su registro con utmp.
  • Cuando hay varias sesiones por usuario y necesitas enumerarlas como unidades de sesión.
  • Cuando administras un escritorio o servidor systemd y las herramientas de logind son la fuente operativa principal.

Si el sistema no cuenta con systemd-logind, loginctl no puede ofrecer esa información. En ese caso utiliza users o who para los registros disponibles y /etc/passwd para las cuentas locales.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Qué comando usar según tu objetivo

Objetivo Comando o fuente Resultado
Ver solo nombres con sesiones registradas users Lista breve de nombres leída del registro de sesiones.
Ver terminal y hora de cada sesión who Sesiones con detalles adicionales del registro utmp.
Enumerar cuentas locales cat /etc/passwd Registros de siete campos separados por dos puntos.
Buscar una cuenta local por nombre grep '^nombre:' /etc/passwd La línea local que coincide exactamente con el nombre inicial.
Ver UID y grupos del proceso actual id Identidad y pertenencia a grupos de la sesión actual.
Ver la identidad de otra cuenta id nombre UID, GID y grupos asociados a esa cuenta.
Consultar sesiones gestionadas por systemd loginctl list-users o loginctl list-sessions Usuarios y sesiones que reconoce systemd-logind.

Procedimiento práctico para investigar un equipo

  1. Empieza por la pregunta. Si solo necesitas saber si hay alguien conectado, ejecuta users. No abras /etc/passwd para responder una pregunta sobre sesiones.
  2. Amplía el contexto. Ejecuta who para asociar nombres con terminales y horas. Si administras un sistema systemd, contrasta también loginctl list-sessions.
  3. Comprueba una cuenta. Usa grep '^nombre:' /etc/passwd para la definición local y id nombre para ver sus identificadores y grupos.
  4. Verifica tu propio contexto. Ejecuta id sin argumentos antes de diagnosticar permisos de un comando o script.
  5. Considera fuentes externas. Si la cuenta no está en el archivo local pero otras herramientas la resuelven, revisa la configuración de NIS, LDAP u otra fuente de identidad habilitada.

Problemas habituales y cómo interpretarlos

users o who no muestran a la persona esperada

Ambos comandos dependen de registros de sesiones en /var/run/utmp. La conexión puede no estar registrada allí, o el registro puede no reflejar todavía el estado real. Comprueba la misma situación con loginctl list-sessions si está disponible y determina qué gestor de sesiones utiliza el equipo.

Una cuenta aparece en /etc/passwd pero no en who

Eso es normal: el primer archivo describe una cuenta local y el segundo muestra sesiones registradas. Una cuenta puede existir sin que nadie la esté utilizando en ese momento; muchas entradas corresponden a servicios del sistema.

id muestra grupos inesperados

Revisa si estás consultando tu identidad actual o una cuenta con id nombre. Distingue el grupo principal de los grupos suplementarios y, cuando una política necesita números, utiliza las opciones que muestran UID, GID o grupos numéricos en lugar de basarte en sus nombres.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

loginctl falla o no existe

La herramienta necesita el gestor systemd-logind. En sistemas que no lo ejecutan, vuelve a users y who para sesiones registradas. No confundas la ausencia de loginctl con la ausencia de usuarios.

El filtrado devuelve coincidencias incorrectas

Un patrón como grep nombre /etc/passwd también puede coincidir dentro de otra columna o en nombres parecidos. El anclaje ^nombre: limita la búsqueda al campo inicial. Para nombres procedentes de NIS o LDAP, ese filtro solo examina el archivo local y no la base completa que el sistema pueda resolver.

Conclusión operativa

Usa users para la respuesta más corta sobre sesiones, who para sus detalles, /etc/passwd para cuentas locales, id para la identidad y los grupos de un proceso, y loginctl para la vista de systemd-logind. Mantener separadas esas cinco consultas es la forma fiable de saber si estás viendo una cuenta existente, una sesión activa o simplemente la identidad con la que se ejecuta tu comando.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.