2.6 – Usuarios y Huellas Digitales en Linux

whoami

El equivalente digital de mirarse al espejo.
Muestra el usuario efectivo que está ejecutando el comando.
Perfecto para explicar la diferencia entre:

  • usuario real (el que inicia sesión),
  • usuario efectivo (el que el sistema usa para permisos, especialmente tras un sudo).

id

Un pequeño radiotelescopio hacia tu identidad numérica.
Muestra:

  • UID (identificador del usuario)
  • GID (grupo principal)
  • grupos secundarios
    Es una forma directa de ver permisos y roles dentro del sistema. Ideal para ejercicios de administración y forense.

who / w / users

El “quién está ahora mismo en la nave”.
Sirve para ver sesiones activas y cómo han entrado:

  • tty
  • pts (sesiones remotas)
  • SSH
  • tiempo conectado

  • En ciberseguridad es una herramienta rápida para detectar conexiones sospechosas.

env

El baúl entero de variables de entorno.
Aquí viven cosas como:

  • $USER
  • $HOME
  • $SHELL
  • $PATH

    Además permite explicar a los alumnos por qué una aplicación “sabe” dónde buscar binarios o dónde está su carpeta de configuración.

echo $USER

Una forma simple de leer la variable que indica el nombre del usuario que ha iniciado sesión.
Comparar whoami vs $USER es didáctico:
$USER → quien inició sesión
whoami → usuario efectivo (útil para mostrar cómo sudo cambia el contexto)


echo $HOME

Viene genial para scripts o explicaciones sobre la organización del sistema.
Muestra la ruta al directorio personal, que siempre es sagrado en Linux.


echo $SHELL

Permite enseñar la diferencia entre bash, zsh, fish…
Ideal para que entiendan por qué su terminal “se comporta raro” tras instalar algo.


hostname

La identidad pública del sistema en la red.
Junto con hostname -I, sirve para explicar la distinción entre:

  • identidad del equipo,
  • interfaces,
  • direcciones IP que usa para comunicarse.

logname

La versión más purista de “quién inició esta sesión”, incluso si has hecho un su o un sudo.
Muy útil en prácticas de forense porque te permite reconstruir acciones de usuarios.


tty

Muestra el dispositivo de terminal actual.
En remoto se verá algo como /dev/pts/1.
Perfecto para entender:

  • sesiones locales,
  • sesiones remotas,
  • multiplexación de terminales.

ps aux | grep $USER

Una puerta a ver “qué está ejecutando realmente tu identidad”.
A los alumnos les ayuda a comprender procesos, permisos, señales y contextos.


finger (si lo instalas)

Pinta un pequeño perfil del usuario:

  • shell
  • home
  • nombre real

    Antiguo pero didáctico como pocas cosas.

Actividad: “¿Quién eres en esta máquina?” – Identidad y sesiones en Linux

Imagina que el sistema es una estación espacial. Cada alumno entra por una compuerta distinta, a veces cambia de traje (sudo), y el objetivo es reconstruir quién hizo qué.


Todo ocurre en un Ubuntu normal.


FASE 1 — Identidad básica

Ejecuta:





whoami
echo $USER
id
logname

Descubrir que el sistema te reconoce por varias “capas”.

Explicación:

  • whoami → usuario efectivo.
  • $USER → usuario que inició sesión.
  • id → UID, GID, grupos.
  • logname → el user original aunque hayan hecho su.

Pequeño reto:
Pídeles que intenten entender por qué sudo whoami devuelve root,
pero echo $USER sigue mostrando su usuario normal.


FASE 2 — Dónde están realmente

Ejecutar





pwd
echo $HOME
echo $SHELL
tty

Esto muestra:

  • dónde están,
  • cuál es su shell,
  • qué terminal están usando (local, SSH, pts…).

Ejercicio: Compartir un terminal local (tty1) con una sesión SSH


FASE 3 — Quién más está en la nave

Ahora miramos el estado de la estación:





who
w
users
hostname
hostname -I

Objetivo: identificar todas las sesiones activas.
Puedes entrar desde otra máquina para ver “un intruso”.

Mini-misión:
Que usen who para averiguar:

  • quién está conectado,
  • desde qué terminal,
  • desde qué IP si es SSH,
  • desde cuándo.

Esto introduce sin ruido en análisis forense real.


FASE 4 — Cambio de identidad





sudo -i
whoami
echo $USER
id
logname
tty

Aquí ocurre la magia:

  • whoami → root
  • $USER → su usuario original
  • logname → quien realmente abrió la sesión
  • tty → la misma porque no abren una nueva


FASE 5 — Ver qué hace cada identidad

En otra terminal, que ejecuten:





ps aux | grep $USER
ps aux | grep root

Fijate que root suele llevar servicios, demonios, etc.

FASE 6 — Prueba forense

Prueba a ejecutar con un usuario un comando secreto en su sesión, por ejemplo:





mkdir /tmp/estacion-alpha
echo "Hola profe" > /tmp/mensaje.txt
touch ~/algo_raro

Luego cambia de usuario :

“Reconstruid qué usuarios han hecho qué”

Utilizando:





ls -l /tmp
ls -l /home/*
who
logname
id username

La identidad del sistema queda impregnada en permisos, UID, GID, sesiones y ficheros creados.


Hackeo benévolo

Se hace SSH desde otro equipo con:





ssh usuario@IP

Luego ejecuta:





who
w
tty
hostname -I

Los demás deben encontrar:

  • quién ha entrado
  • desde qué IP
  • en qué terminal
  • cuánto tiempo lleva conectado
    Esta parte siempre les encanta porque parece CSI, pero sin dramatismos digitales.