Ghost AcademySecLearn// Seguridad Informática
🌐 unfantasmaenelsistema.com
👥 Administración de Usuarios y Grupos · Linux · Ubuntu 24.04
Usuarios Grupos Permisos
// useradd · usermod · groupadd · chmod · chown · /etc/passwd

Guía completa de administración de identidades en Linux. Conceptos fundamentales de UID/GID, ciclo de vida de usuarios y grupos, archivos de configuración del sistema y el modelo de permisos rwx con notación octal y simbólica.

adduser · userdel · usermod · passwd groupadd · groupdel · gpasswd · groups /etc/passwd · /etc/shadow · /etc/group chmod 755 · rwx = 4+2+1 · u g o a root UID=0 · sudo · SUID · SGID
🧑‍💻
1. Conceptos Fundamentales
Usuarios, grupos y root son los tres pilares del modelo de identidad y control de acceso en Linux.
👤
Usuario (User)
Nombre de usuario — identificador de texto legible.
UID (User ID) — número único interno. UID 0 = root.
Directorio home — /home/nombreusuario.
Shell — intérprete de comandos (/bin/bash, /bin/zsh).
👥
Grupo (Group)
Grupo principal — creado automáticamente con el usuario (mismo nombre).
Grupos suplementarios — cualquier otro grupo al que pertenezca.
GID (Group ID) — número único interno del grupo.
Facilitan la gestión masiva de permisos para múltiples usuarios.
🔴
Usuario root
Superusuario con privilegios ilimitados — UID = 0.
Puede instalar, eliminar y cambiar permisos de cualquier archivo.
sudo (Superuser Do) — permite ejecutar comandos como root temporalmente sin iniciar sesión como root.
Por seguridad, las tareas de administración se realizan siempre mediante sudo.
👤
2. Administración de Usuarios
Crear, modificar, bloquear y eliminar usuarios. En Debian/Ubuntu se recomienda adduser sobre useradd — es una envoltura que automatiza múltiples tareas.

Crear un nuevo usuario — adduser

1
Crea el usuario
Registra la entrada en /etc/passwd y /etc/shadow.
2
Crea el grupo principal
Genera automáticamente un grupo con el mismo nombre que el usuario.
3
Crea el directorio home
Genera /home/<nombre_usuario>/ con los archivos de configuración por defecto.
4
Solicita y establece la contraseña
Pide confirmación de contraseña y guarda el hash en /etc/shadow.
5
Configura el shell y otros parámetros
Establece el shell por defecto (/bin/bash) y solicita datos opcionales (nombre completo, teléfono, etc.).
bash — crear, contraseña y eliminar usuarios
# Crear usuario (recomendado en Debian/Ubuntu)
sudo adduser <nombre_usuario>

# Cambiar / establecer contraseña
sudo passwd <nombre_usuario>
# Sin nombre de usuario → cambia tu propia contraseña
sudo passwd ana

# Eliminar usuario (sin directorio home)
sudo userdel <nombre_usuario>

# Eliminar usuario + directorio home + mail spool ← lo más común
sudo userdel -r <nombre_usuario>

Modificar propiedades — usermod

FlagComandoDescripción
-dsudo usermod -d /home/<nuevo> <usuario>Cambiar directorio home
-ssudo usermod -s /bin/zsh <usuario>Cambiar shell por defecto
-Lsudo usermod -L <usuario>Bloquear la cuenta (antepone ! en /etc/shadow)
-Usudo usermod -U <usuario>Desbloquear la cuenta
-aGsudo usermod -aG <grupo> <usuario>Añadir a grupo suplementario (siempre -a con -G)
⚠️ -G sin -a borra todos los grupos suplementarios: usermod -G developers juan elimina a juan de todos sus grupos actuales y lo añade solo a developers. Usa siempre -aG (append + Group) para añadir sin eliminar.
👥
3. Administración de Grupos
Crear grupos, gestionar membresías y consultar a qué grupos pertenece un usuario. Los grupos son el mecanismo de colaboración entre usuarios en Linux.
bash — crear, eliminar y gestionar grupos
# Crear un nuevo grupo vacío
sudo groupadd desarrolladores

# Eliminar un grupo
sudo groupdel <nombre_grupo>

# Añadir usuario a un grupo suplementario
sudo usermod -aG desarrolladores juan

# Eliminar usuario de un grupo (gpasswd -d)
sudo gpasswd -d juan desarrolladores

# Ver todos los grupos de un usuario
groups juan
# Salida: juan : juan sudo desarrolladores

# Ver UID, GID y grupos de forma detallada
id juan
# Salida: uid=1001(juan) gid=1001(juan) groups=1001(juan),27(sudo),1002(desarrolladores)
💡 groups vs id: groups muestra solo los nombres de grupo. id muestra UID, GID principal y todos los grupos con sus GIDs numéricos — más útil para diagnóstico de permisos.
🗂️
4. Archivos Clave de Configuración
Toda la información de usuarios y grupos se almacena en archivos de texto plano. Solo root puede modificarlos directamente — usa siempre los comandos de administración.

/etc/passwd — información de usuarios

/etc/passwd — formato de cada línea (7 campos separados por :)
juan:x:1001:1001:Juan García,,,,:/home/juan:/bin/bash
campo 1
nombre
Username del usuario
campo 2
x
La 'x' indica que el hash está en /etc/shadow
campo 3
UID
ID numérico del usuario. 0 = root
campo 4
GID
ID del grupo principal
campo 5
GECOS
Comentario — nombre completo, teléfono, etc.
campo 6
home
Ruta del directorio personal
campo 7
shell
Shell del usuario al iniciar sesión

/etc/shadow — contraseñas encriptadas

Contiene los hashes de las contraseñas y la política de caducidad. Es el archivo más sensible del sistema — solo legible por root. Separado de /etc/passwd precisamente por seguridad.

/etc/group — información de grupos

/etc/group — formato de cada línea (4 campos separados por :)
desarrolladores:x:1002:juan,maria,pedro
campo 1
nombre_grupo
Nombre del grupo
campo 2
x
Contraseña en /etc/gshadow (raramente usada)
campo 3
GID
ID numérico del grupo
campo 4
usuarios
Lista de usuarios suplementarios separados por coma
🔍 Nota sobre /etc/passwd vs /etc/shadow: Históricamente, las contraseñas estaban en /etc/passwd (legible por todos). El campo "x" indica que se movieron a /etc/shadow (solo root) por seguridad — así los usuarios del sistema no pueden intentar descifrar los hashes de otros.
🔐
5. Permisos de Archivos — Estructura rwx
El modelo de permisos de Linux define quién puede leer (r), escribir (w) o ejecutar (x) un archivo, aplicado a tres categorías: Propietario, Grupo y Otros.
Estructura de permisos — salida de ls -l
-rwxrwxrwx
tipo
-
- archivo
d directorio
l enlace simbólico
propietario (user)
rwx
caracteres 2-4
grupo (group)
rwx
caracteres 5-7
otros (others)
rwx
caracteres 8-10

Tipos de permisos y valores octales

r
4
Lectura — ver contenido
w
2
Escritura — modificar contenido
x
1
Ejecución — ejecutar el archivo
-
0
Sin permiso
Estructura de permisos Linux - diagrama visual
Diagrama visual de la estructura de permisos rwx en Linux
🔧
chmod — Modificar Permisos
El comando chmod (Change Mode) admite dos notaciones: octal (numérica, más rápida) y simbólica (letras, más expresiva). Ambas son equivalentes.

Notación Octal — suma de valores

Para cada categoría (Propietario, Grupo, Otros) suma los valores de los permisos deseados: r=4, w=2, x=1.

Calculadora octal — chmod 755
Categoría
Permisos
Cálculo
Dígito
Propietario (u)
rwx
4 + 2 + 1
7
Grupo (g)
r-x
4 + 0 + 1
5
Otros (o)
r-x
4 + 0 + 1
5
bash — chmod notación octal
# 755 → propietario: rwx (7) | grupo: r-x (5) | otros: r-x (5)
chmod 755 archivo.sh

# 644 → propietario: rw- (6) | grupo: r-- (4) | otros: r-- (4)
chmod 644 archivo.txt

# 600 → propietario: rw- (6) | grupo: --- (0) | otros: --- (0)
chmod 600 clave_privada.pem

# 777 → todos tienen rwx (¡evitar en producción!)
chmod 777 directorio/

Notación Simbólica — letras

SímboloSignificadoEjemplo
uUsuario / Propietariochmod u+x — añade ejecución al propietario
gGrupochmod g-w — quita escritura al grupo
oOtroschmod o-w — quita escritura a otros
aTodos (u + g + o)chmod a+r — añade lectura a todos
+Añadir permisochmod ug+x archivo.sh
-Quitar permisochmod o-w archivo.txt
=Asignar permiso exacto (reemplaza)chmod u=rw archivo.txt
bash — chmod notación simbólica
# Añadir ejecución al usuario y al grupo
chmod ug+x archivo.sh

# Quitar escritura a otros
chmod o-w archivo.txt

# Dar lectura a todos
chmod a+r documento.pdf

# Asignar permiso exacto al propietario (reemplaza los actuales)
chmod u=rw archivo.conf

# Aplicar recursivamente a un directorio y todo su contenido
chmod -R 755 /var/www/html/
🏷️
chown y chgrp — Cambiar Propietario y Grupo
Mientras chmod cambia qué se puede hacer, chown cambia a quién pertenece el archivo. Requiere privilegios de root.
bash — chown y chgrp
# Cambiar solo el propietario
sudo chown nuevo_propietario archivo.txt

# Cambiar solo el grupo propietario
sudo chgrp nuevo_grupo archivo.txt

# Cambiar propietario y grupo a la vez (sintaxis propietario:grupo)
sudo chown juan:desarrolladores proyecto/

# Cambiar solo el grupo con chown (dejar propietario vacío)
sudo chown :desarrolladores archivo.txt

# Aplicar recursivamente a todo un directorio
sudo chown -R www-data:www-data /var/www/html/
📌 chown vs chgrp: chgrp es equivalente a chown :grupo — ambos cambian el grupo propietario. chown propietario:grupo cambia ambos en un solo comando, que es lo más común en administración.
📋
Referencia Rápida
Todos los comandos esenciales organizados por categoría.
👤 Usuarios
sudo adduser <usuario> # crear
sudo passwd <usuario> # contraseña
sudo userdel -r <usuario> # eliminar + home
sudo usermod -L <usuario> # bloquear
sudo usermod -U <usuario> # desbloquear
sudo usermod -s /bin/zsh <u> # cambiar shell
👥 Grupos
sudo groupadd <grupo> # crear
sudo groupdel <grupo> # eliminar
sudo usermod -aG <grupo> <u> # añadir
sudo gpasswd -d <u> <grupo> # eliminar
groups <usuario> # ver grupos
id <usuario> # ver UID/GID/grupos
🔐 Permisos (chmod)
chmod 755 archivo.sh # rwxr-xr-x
chmod 644 archivo.txt # rw-r--r--
chmod 600 clave.pem # rw-------
chmod ug+x archivo.sh # +x a user y grupo
chmod o-w archivo.txt # quitar w a otros
chmod -R 755 dir/ # recursivo
🏷️ Propietario (chown)
sudo chown user archivo # cambiar propietario
sudo chgrp grupo archivo # cambiar grupo
sudo chown user:grupo archivo # ambos
sudo chown -R user:g dir/ # recursivo

Permisos octales más comunes

OctalSimbólicoUso típico
755rwxr-xr-xScripts y ejecutables — propietario escribe/ejecuta, demás solo leen/ejecutan
644rw-r--r--Archivos de configuración y documentos — propietario escribe, demás solo leen
600rw-------Claves privadas SSH, archivos muy sensibles — solo el propietario accede
700rwx------Directorios privados — solo el propietario puede listar y acceder
777rwxrwxrwxTodos los permisos a todos — evitar en producción