Usuarios y grupos en Linux

Este módulo explica cómo Linux gestiona usuarios y grupos, cómo se autentican y cómo se relacionan con permisos y procesos.

La correcta gestión de usuarios es fundamental para seguridad, auditoría y estabilidad en cualquier sistema Linux multiusuario.


Introducción

Linux está diseñado desde su origen como un sistema multiusuario.
Cada acción que ocurre en el sistema (leer un archivo, ejecutar un comando, lanzar un servicio) se ejecuta en nombre de un usuario.

Por eso, entender cómo se crean, identifican y gestionan los usuarios es clave para:

  • Controlar accesos
  • Aplicar permisos correctamente
  • Auditar acciones
  • Evitar errores de seguridad

Identidad de usuario: UID y GID

Linux no identifica usuarios por nombre, sino por números.

  • UID (User ID) → identifica al usuario
  • GID (Group ID) → identifica al grupo principal

Ejemplo:

id david

Salida típica:

uid=1000(david) gid=1000(david) groups=1000(david),27(sudo)

⚠️ El nombre es solo una etiqueta; el sistema trabaja con UID/GID.


Usuario root

  • UID 0
  • Control total del sistema
  • Puede ignorar permisos
id root

❗ Nunca uses root para trabajo diario.


Archivos clave del sistema

La información de usuarios y grupos se guarda en archivos de texto planos.


/etc/passwd

Contiene la definición de usuarios.

Ejemplo:

david:x:1000:1000:David Alvarez:/home/david:/bin/bash

Campos:

  1. Usuario
  2. Contraseña (x → en shadow)
  3. UID
  4. GID
  5. Comentario
  6. Home
  7. Shell

/etc/shadow

Contiene las contraseñas cifradas.

david:$y$j9T$...:19850:0:99999:7:::
  • Solo accesible por root
  • Crítico para la seguridad

/etc/group

Define los grupos del sistema.

sudo:x:27:david

Campos:

  1. Nombre del grupo
  2. Contraseña (normalmente x)
  3. GID
  4. Miembros

Crear y gestionar usuarios

Crear usuario

useradd david

Forma recomendada (con entorno completo):

useradd -m -s /bin/bash david

O directamente:

adduser david

Asignar contraseña

passwd david

Eliminar usuario

userdel david

Eliminar también su home:

userdel -r david

⚠️ Cuidado en sistemas productivos: puede romper servicios.


Grupos y pertenencia

Los grupos permiten gestionar permisos de forma colectiva.

Crear grupo

groupadd desarrolladores

Añadir usuario a grupo

usermod -aG desarrolladores david

❗ Sin -a, se sobrescriben los grupos existentes.


Ver grupos de un usuario

groups david

Sesiones y entorno del usuario

Cada usuario tiene:

  • Directorio HOME
  • Shell
  • Variables de entorno
  • Archivos de configuración

Ejemplo de home:

/home/david

Archivos importantes:

  • .bashrc
  • .profile
  • .bash_profile

Cambio de usuario y elevación de privilegios

su (switch user)

su david

Como root:

su -

sudo (recomendado)

Ejecutar un comando como root:

sudo apt update

Configurar sudo:

visudo

Archivo:

/etc/sudoers

✅ sudo deja trazabilidad (logs), su no.


Usuarios del sistema vs usuarios humanos

Linux diferencia entre:

Usuarios humanos

  • UID ≥ 1000
  • Login interactivo
  • Home directory

Usuarios de sistema

  • UID < 1000
  • Sin login
  • Usados por servicios (www-data, mysql, sshd)

Ejemplo:

id www-data

Errores comunes

Errores habituales:

  • Trabajar siempre como root
  • Editar /etc/passwd a mano sin cuidado
  • Olvidar -a en usermod
  • Dar sudo innecesario
  • No deshabilitar usuarios antiguos

💡 Usa grupos para permisos, no usuarios individuales.


Ejercicios prácticos

1. Crear un usuario completo

adduser prueba

Comprueba:

id prueba
ls /home

2. Crear grupo y asignar permisos

groupadd proyecto
usermod -aG proyecto prueba
groups prueba

3. Revisar archivos del sistema

cat /etc/passwd | tail
cat /etc/group | tail

Mentalidad

Un buen sysadmin piensa:

  • Todo proceso corre como un usuario
  • Menos privilegios = más seguridad
  • Grupos simplifican la gestión
  • sudo > root
  • Usuarios también son una superficie de ataque

La gestión de usuarios es base de la seguridad.


Resumen

  • Linux identifica usuarios por UID/GID
  • root tiene UID 0
  • /etc/passwd, shadow y group son archivos clave
  • useradd, usermod y groupadd son comandos esenciales
  • sudo es la forma correcta de elevar privilegios

Siguiente paso

En el siguiente módulo entrarás en:

Procesos en Linux (procesos.md)

Donde verás:

  • Qué es un proceso y cómo se crea
  • PID, PPID y estados
  • Cómo monitorizar y controlar procesos