- Administración de cuentas a través de archivos críticos como /etc/passwd, /etc/shadow y /etc/group.
- Control de privilegios mediante la distinción entre superusuarios, cuentas de sistema y usuarios estándar.
- Implementación de seguridad basada en el principio de menor privilegio y gestión de permisos octales y simbólicos.
- Uso de herramientas de la suite Shadow para la manipulación eficiente de identidades y accesos.
Cuando te metes en el mundo de Linux, te das cuenta rápido de que el sistema es, por así decirlo, bastante clasista. No es que sea maleducado, sino que todo depende de a qué grupo pertenezcas para poder tocar ciertos archivos o usar periféricos específicos. Esta jerarquía es lo que hace que la gestión de identidades sea el corazón de la seguridad en cualquier servidor o equipo personal con GNU/Linux.
No se trata solo de crear una cuenta y ya está, sino de saber mover las piezas en el tablero: asignar roles, controlar quién puede ejecutar órdenes de administrador con sudo y asegurar que nadie tenga más acceso del que estrictamente necesita para hacer su trabajo. Vamos a desgranar cómo funciona todo este tinglado, desde los archivos donde se guarda la información hasta los comandos que te salvarán la vida en la terminal.
Tipos de identidades en el sistema

Para no liarnos, hay que entender que no todos los usuarios son iguales. Primero tenemos al usuario root, que es el jefe absoluto. Tiene el UID 0 y puede hacer lo que le dé la gana, desde borrar todo el disco hasta cambiar la configuración del núcleo. Como es una herramienta tan potente, lo ideal es no usarla para el día a día y recurrir a usuario root en Linux solo cuando sea necesario.
Luego están los usuarios de sistema o demonios. Son cuentas que no están hechas para que una persona inicie sesión, sino para que servicios como Apache o MySQL funcionen de forma aislada. Esto es una medida de seguridad brillante: si un hacker vulnera un servicio, se queda atrapado en los permisos limitados de ese usuario y no puede saltar al resto del sistema fácilmente. Normalmente, estos usuarios tienen shells como /sbin/nologin o /bin/false para evitar accesos interactivos.
Por último, tenemos a los usuarios normales. Son las personas reales que usamos el equipo. Tienen su propio espacio personal en /home/usuario y solo mandan sobre sus propios archivos, lo que evita que un error accidental de un usuario borre la configuración de otro.
Los archivos donde se anota todo

Linux es un sistema basado en archivos, así que toda la gestión de usuarios se resume en leer y escribir en un par de textos planos dentro de /etc. El más conocido es /etc/passwd, donde cada línea representa a un usuario con siete campos separados por dos puntos. Aquí encontramos el login, el UID, el GID y la ruta de su carpeta personal.
Como poner las contraseñas en un archivo que cualquiera puede leer sería una locura, se inventó /etc/shadow. Este archivo es mucho más restringido y solo el root puede echarle un ojo. Aquí se guarda la clave cifrada y datos muy útiles sobre la vigencia de la contraseña, como cuántos días deben pasar antes de cambiarla o cuándo caduca la cuenta.
Para los grupos, el sitio es /etc/group. En este fichero se definen los identificadores de grupo (GID) y la lista de usuarios que pertenecen a ellos de forma secundaria. Es la base para asignar permisos colectivos sin tener que ir uno por uno.
Maniobras con usuarios y grupos

Para crear un nuevo integrante en el sistema, el comando estándar es useradd, aunque en muchas distribuciones se usa adduser porque es más intuitivo y actúa como un asistente. Si quieres que el usuario tenga su propia carpeta desde el principio, no olvides añadir la opción -m. Una vez creado, es fundamental asignarle una clave con el comando passwd, ya que sin ella la cuenta suele quedar bloqueada.
Si necesitas hacer cambios sobre la marcha, usermod es tu mejor aliado. Sirve para cambiar el nombre del usuario, mover su home o añadirlo a nuevos grupos. Un truco importante es usar -aG para añadir un usuario a un grupo suplementario sin borrar los que ya tenía; si olvidas la «a», podrías dejar al usuario fuera de grupos críticos como sudo.
Para borrar cuentas, usamos userdel. Si quieres hacer limpieza total y eliminar también su carpeta personal y correos, añade el parámetro -r. Si el usuario está conectado y necesitas echarlo a la fuerza, la opción -f hace el trabajo sucio, aunque hay que usarla con cuidado.
En cuanto a los grupos, groupadd crea el grupo y groupdel lo elimina. Para gestionar quién entra y sale de un grupo, gpasswd es una herramienta muy eficaz para añadir miembros rápidamente.
El juego de los permisos y la seguridad

Aquí es donde la cosa se pone interesante. Cada archivo tiene tres niveles de permisos: propietario, grupo y otros. Estos permisos pueden ser de lectura (r), escritura (w) o ejecución (x). Para cambiarlos, usamos chmod, ya sea de forma simbólica (como u+x para añadir ejecución al dueño) o numérica.
El sistema numérico u octal es el más rápido. Un permiso 755, por ejemplo, significa que el dueño hace todo (7), mientras que el grupo y los demás solo pueden leer y ejecutar (5). Para cambiar quién es el dueño de un archivo, usamos chown, y para el grupo, chgrp. Si queremos que el cambio afecte a todas las subcarpetas, aplicamos el modo recursivo con -R.
Para evitar que los archivos nuevos nazcan con permisos demasiado abiertos, Linux usa la máscara umask. Esta define qué permisos se deben quitar por defecto al crear un documento, asegurando que la configuración de seguridad sea coherente en todo el sistema.
Privilegios elevados y acceso remoto
No todo el mundo puede ser root, pero algunos necesitan hacer cosas de root. Para eso existe el archivo /etc/sudoers, que se debe editar siempre con el comando visudo para evitar errores de sintaxis que nos dejen fuera del sistema. Aquí podemos crear alias de comandos o de usuarios para delegar tareas específicas sin dar las llaves de todo el castillo.
Cuando trabajamos en remoto, la seguridad es aún más crítica. Olvida las contraseñas simples y pásate a las claves SSH. Usando ssh-keygen generamos un par de llaves (una pública y otra privada) y luego enviamos la pública al servidor con ssh-copy-id. Esto permite un acceso mucho más seguro y profesional, permitiéndonos incluso desactivar el acceso por password en el servidor.
La administración efectiva de Linux pasa por dominar el equilibrio entre la funcionalidad y la restricción. Utilizando herramientas como id para verificar identidades, groups para revisar pertenencias y aplicando el principio de menor privilegio, transformamos un sistema vulnerable en una fortaleza digital donde cada proceso y persona tiene exactamente el acceso que necesita.
