Administración de Usuarios y Grupos en Linux
Gestión de usuarios y grupos: /etc/passwd, /etc/shadow, /etc/group, chown/chgrp, su, sudo y sudoers.
Administración de Usuarios y Grupos en Linux
Operational Scope & Technical Objective
Las cuentas locales de Linux se almacenan en tres archivos con separación de responsabilidades: /etc/passwd (nombre de usuario, UID, GID, home, shell — legible por todos), /etc/shadow (hash de contraseña y política de expiración — solo root/grupo shadow) y /etc/group (definición de grupos y membresías). La posesión de archivos se rige por UID/GID (chown/chgrp) y el cambio de identidad en runtime por su/sudo. El bit x sobre un directorio determina si un usuario puede ejecutar comandos en su interior — condición necesaria además de r.
High-Impact Syntax & Command Cheatsheet
Inspección de cuentas y sesiones
users # usuarios con sesión activa
who # sesiones activas con tty y origen
w # quién está conectado y qué proceso ejecuta
cat /etc/passwd # cuentas: user:x:UID:GID:info:home:shell
cat /etc/passwd | cut -d : -f 1 # solo nombres de usuario
cat /etc/shadow # hashes de contraseña (requiere privilegio)
cat /etc/group # grupos y miembros
id # UID/GID/grupos del usuario actual
Permisos y propiedad
ls -la # vista de permisos y propiedad
chmod g-w hello.txt # quita write al grupo
chmod a=,u=r hello.txt # others/grupo a 0, owner con solo r
chmod 664 hello.txt # rw- para user y group, r-- para others
sudo chown mike hello.txt # cambia el owner del archivo
sudo chgrp mike hello.txt # cambia el grupo del archivo
El bit x de un directorio habilita recorrerlo y ejecutar comandos dentro; sin él, cd y la resolución de nombres fallan incluso con r presente.
Cambio de identidad
sudo -u anotheruser cat restricted.txt # lee como otro usuario, sin switch
su newuser # cambia de usuario (pide contraseña de destino)
su - # nueva sesión de login como root (carga entorno)
su -c 'ls Desktop' # ejecuta un solo comando, sin crear sesión de login
Gestión de contraseñas
passwd # cambia la contraseña del usuario actual
sudo passwd newuser # cambia la contraseña de otro usuario
Manipulación de cuentas
adduser <user name> # crea un usuario nuevo (Debian, con home y grupo)
adduser <user name> sudo # agrega el usuario al grupo sudo
useradd <user> # creación mínima (sin home por defecto en algunos sistemas)
usermod -aG <group> <user> # agrega a un grupo suplementario
userdel <user> # elimina la cuenta
Real-World Offensive/Defensive Scenarios
-
Inventario de superficie (ofensivo): enumerar cuentas con shell real y UID 0 para identificar objetivos:
awk -F: '($3 == 0) {print}' /etc/passwd # cuentas UID 0 grep -E "/(bash|sh|zsh)$" /etc/passwd # cuentas con shell getent group sudo # miembros del grupo sudo -
Legibilidad de
/etc/shadow(ofensivo): sils -l /etc/shadowmuestra-rw-r--rw-, se puede volcar el hash y romperlo offline conunshadow+john(ver escalar-rutas); si es escribible, reemplazar el hash de root con uno generado conopenssl passwd -6. -
Propiedad como vector (ofensivo):
chowncon privilegio sobre un script ejecutado por root (cron, service unit) convierte la propiedad en ejecución arbitraria; verificar qué archivos pertenecen al usuario actual en rutas de sistema:find / -user $(whoami) -type f 2>/dev/null | grep -v -E '^/(proc|sys|dev|run)' -
Política de cuentas (defensivo): restringir
su/sudovíapam_wheel(solo grupowheel), forzarPermitRootLogin noen SSH y auditar membresías del gruposudo.