Contenido
Un sistema operativo multiusuario es como un edificio donde vive mucha gente. Cada persona tiene su habitación y sus cosas. Sin permisos, cualquiera podría:
- Abrirse la nevera de otro.
- Pagar las facturas del vecino (aunque le convenga).
- Borrar carpetas del sistema “sin querer”.
Linux nació para compartir la casa de forma civilizada.
[La regla de oro]
El usuario normal puede romper su habitación; el superusuario puede romper el edificio entero.
¿Qué es el superusuario (root)?
Root es ese administrador que tiene todas las llaves, incluidas las que abren las puertas del sistema. Puede instalar programas, cambiar configuraciones, borrar sistemas de archivos y mirar cualquier carpeta.
¿Qué es sudo realmente?
“Substitute User DO” (o “superuser do”).
Traducción humana: Haz esto como si yo fuera el administrador.
Sudo no da poderes mágicos. Solo te presta el disfraz de root por unos segundos, si el sistema confía en ti, según lo que aparezca en el archivo /etc/sudoers.
Además:
- Sudo pide contraseña porque necesita asegurarse de que eres tú.
- Guarda un registro de lo que haces (auditoría)
- Puede limitar qué comandos exactos puede usar cada usuario.
Ese toque de control es lo que hace que sudo sea más seguro que loguearse directamente como root.
Explicación práctica del archivo /etc/sudoers
En el documento sudoers podemos dar permisos para utilizar todos los comando o algunos en concreto.
usuario maquina=(usuario_objetivo) comandos
Ejemplo clásico:
antonio ALL=(ALL:ALL) ALL
Traducción informal: Antonio puede usar sudo para hacer cualquier cosa, desde cualquier sitio, como cualquier usuario.
Significado de ALL=(ALL:ALL) ALL
Piensa en cada ALL como una variable diferente en una cadena de permisos.
El archivo /etc/sudoers sigue esta estructura general:
usuario hosts = (usuarios_objetivo : grupos_objetivo) comandos
Primer ALL → Dónde puede usar sudo
ALL =
Esto significa:
“Desde cualquier máquina o terminal donde este usuario inicie sesión”.
En aulas, servidores, SSH, local… no importa.
Significa sin restricciones por host.
(ALL:ALL) → Quién puede llegar a ser
Este es el trozo más interesante.
(ALL:ALL) Se divide en dos partes:
==Primer ALL (antes de los dos puntos)==
Es la lista de usuarios objetivo.
Traducción:
“Puede usar sudo para convertirse en cualquier usuario del sistema.”
No solo root: también www-data, postgres, backup, etc.
Por ejemplo:
sudo -u postgres psql
==Segundo ALL (tras los dos puntos)==
Es la lista de grupos objetivo.
Significa:
“Puede ejecutar comandos como miembro de cualquier grupo.”
No siempre se usa, pero cuando está, implica libertad total en cómo sudo crea el entorno del comando.
En resumen:
Tiene permiso para ejecutar comandos como cualquier usuario y cualquier grupo.
Último ALL → Qué comandos puede ejecutar
... ALL
Es la lista de comandos permitidos con sudo.
Este último ALL significa:
“Puede ejecutar cualquier comando con sudo.”
Incluyendo:
- Administración del sistema
- Manipulación de archivos críticos
- Instalación de paquetes
- Gestión de usuarios
- Servicios
- Montaje/desmontaje
- Cambios en red
- Etc.
[!NOTA]
Es la carta blanca total.—
En distros como Ubuntu, pertenecer al grupo sudo ya te da superpoderes. Puedes inspeccionar el grupo así:
getent group sudo
O, de forma artesanal:
cat /etc/group | grep sudo
También puedes pedirle al sistema: “Oye, ¿quién puede ejecutar sudo?” con:
sudo -l -U nombre_de_usuario
Esto te dice exactamente qué puede hacer ese usuario con sudo.
En resumen privilegiado:
— Usuarios declarados en /etc/sudoers
— Usuarios declarados en /etc/sudoers.d/*
— Usuarios que pertenecen al grupo sudo (o wheel, según la distro)
Crear usuarios sin poderes especiales
Comandos básicos:
Crear usuario
sudo adduser juan
El sistema pedirá contraseña y datos opcionales.
Por defecto, juan no tiene poderes administrativos.
Ver su grupo
id juan
Verán que no pertenece al grupo sudo.
Cambiar a ese usuario
su juan
Ahora puedes intentar un comando de administrador:
sudo apt update
Te dirá que juan no está en el archivo sudoers.
Esa frase es el equivalente a “no tienes la llave del edificio”.
Crear un usuario con permisos de sudo
Hay dos formas:
A) Añadirlo al grupo sudo
sudo usermod -aG sudo juan
Ahora juan puede usar sudo después de cerrar sesión y volver a entrar.
B) Darle permisos específicos (ideal para clase avanzada)
Editar con el editor seguro:
sudo visudo
Y añadir algo como:
juan ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl restart apache2
Ahora juan solo puede actualizar paquetes y reiniciar Apache.
Esto crea un usuario “Hawkeye”: no tiene superpoderes totales, pero sí un par de flechas especiales.
Comandos clave
- Crear usuario:
sudo adduser nombre - Cambiar su grupo:
sudo usermod -aG sudo nombre - Cambiar de usuario:
su - nombre - Editar permisos:
sudo visudo - Ver grupos:
id nombre
Archivos importantes
/etc/passwd→ lista de usuarios./etc/group→ lista de grupos./etc/sudoers→ permisos privilegiados./var/log/auth.log→ historial de uso de sudo.
Comandos para la creación de usuarios y grupos
1. Crear usuario con adduser
adduser es amigable, pregunta cosas, rellena la casa del usuario y pone alfombra.
Ejemplos:
Crear usuario normal
sudo adduser mario
Crear usuario y saltarse las preguntas (solo contraseña):
sudo adduser --disabled-password mario
Después puedes activar contraseña con:
sudo passwd mario
Crear usuario sin carpeta home. Esto es útil para cuentas de servicio.
sudo adduser --no-create-home servidorweb
Crear usuario en un grupo específico
sudo adduser juana profesores
2. Crear usuario con useradd (el técnico)
useradd es seco, directo… y totalmente predecible, ideal para scripts y prácticas avanzadas.
Crear usuario con home y shell
sudo useradd -m -s /bin/bash ana
Crear usuario sin home
sudo useradd -M bot
Crear usuario con grupo primario específico
sudo useradd -g profesores laura
Crear usuario con grupos adicionales
sudo useradd -G sudo,devops carlos
Crear usuario con fecha de caducidad
Esto es genial para usuarios temporales.
sudo useradd -m -e 2025-12-31 invitado
Puedes ver la caducidad con:
sudo chage -l invitado
Crear usuario con comentario
sudo useradd -m -c "Laura Martínez" laura
GESTIÓN DE CONTRASEÑAS
La herramienta clave aquí es passwd.
Cambiar o poner contraseña a un usuario
sudo passwd juan
Desactivar la contraseña (no puede iniciar sesión)
sudo passwd -l juan
Activar contraseña bloqueada
sudo passwd -u juan
Forzar cambio de contraseña al siguiente inicio
Esto es ideal para alumnos nuevos:
sudo passwd -e juan
Establecer políticas de contraseñas
Con chage puedes ajustar tiempos.
Ejemplos:
Caducidad de contraseña a 90 días
sudo chage -M 90 juan
Periodo mínimo entre cambios: 1 día
sudo chage -m 1 juan
Avisar 7 días antes de caducar
sudo chage -W 7 juan
Bloquear cuenta si no usa su cuenta en X días
sudo chage -I 30 juan
GESTIÓN DE GRUPOS
Crear grupo
sudo groupadd profesores
Añadir usuario a grupo
sudo usermod -aG profesores juan
Sacar usuario de un grupo
Para ver grupos primero:
groups juan
Eliminarlo del grupo:
sudo gpasswd -d juan profesores
MODIFICAR USUARIOS YA EXISTENTES
Cambiar su shell
sudo usermod -s /bin/bash mario
Cambiar su home (se mueve manualmente)
sudo usermod -d /home/nuevo_mario mario
Cambiar nombre del usuario
sudo usermod -l nuevo_nombre viejo_nombre
Cambiar el UID o GID
(para nivel pro)
sudo usermod -u 1500 mario sudo usermod -g staff mario
Ver en qué grupos está un usuario
El método rápido, casi intuitivo:
groups nombreusuario
Te devuelve todos los grupos a los que pertenece, con una lista directa, estilo:
nombreusuario : grupo1 grupo2 grupo3
Si quieres la versión más formal:
id nombreusuario
Te muestra UID, GID y todos los grupos extra.
Y si estás logueado como ese usuario, basta con:
groups
Ver qué usuarios pertenecen a un grupo
Esta es la operación inversa: mirar dentro del grupo para ver la lista de miembros.
Forma clara:
getent group nombredelgrupo
Salida típica:
profesores:x:1003:antonio,juan,marta
También puedes mirar el archivo clásico:
cat /etc/group | grep nombredelgrupo
Y si el grupo tiene muchos miembros, puedes hacerlo más legible:
getent group nombredelgrupo | tr ':' '\n'
El detalle curioso: grupos primarios vs secundarios
Cada usuario tiene:
- un grupo primario (su GID principal)
- varios grupos secundarios
id te los marca con claridad:
id alumna1
Salida:
uid=1001(alumna1) gid=1001(alumna1) groups=1001(alumna1),1002(sudo),1003(profesores)
Cómo ver si un usuario tiene permisos indirectos en un grupo
Linux no tiene una orden directa tipo “¿quién tiene permisos en esta carpeta vía grupo?”, pero con la trilogía:
- ver el grupo dueño de la carpeta
- ver los permisos
- listar los usuarios del grupo
Ya puedes reconstruir la escena del crimen digital.
Ejemplo:
ls -ld carpeta
Resultado:
drwxrwx--- 2 root profesores 4096 ...
Luego:
getent group profesores
Obtienes la lista real de personas con acceso.












![2.7 - [Reto] Matrix: Controlar el sistema significa-codigo-verde-matrix](https://laaventuradeaprender.com/wp-content/uploads/2025/12/significa-codigo-verde-matrix.webp)
![2.8 - [Reto] Matrix: Huellas en el Código 263bc108e34fc8269e4b404506a03219648de530fce97179de1b8106b65795c6._SX1080_FMjpg_](https://laaventuradeaprender.com/wp-content/uploads/2025/12/263bc108e34fc8269e4b404506a03219648de530fce97179de1b8106b65795c6._SX1080_FMjpg_.webp)


