Gestionar quién puede hacer qué dentro de un sistema Linux es una de las habilidades más importantes para cualquier administrador. Comprender cómo funcionan los usuarios y grupos permite controlar accesos, proteger información y organizar permisos de forma eficiente.
¿Qué son los usuarios en Linux y por qué necesitan un UID?
Los usuarios en Linux representan identidades separadas dentro del sistema operativo. Cada uno tiene responsabilidades y permisos distintos, lo que permite saber quién ejecutó cada acción y limitar el acceso a archivos e información según corresponda [0:18].
Cada usuario cuenta con tres elementos fundamentales:
- UID (User ID): un identificador único que el sistema asigna para distinguir a cada usuario.
- GID (Group ID): uno o más identificadores que vinculan al usuario con grupos de permisos.
- Directorio home: la carpeta personal del usuario, ubicada generalmente en
/home/nombre_usuario.
Dependiendo de los permisos otorgados, un usuario podrá ejecutar comandos, leer archivos o modificar configuraciones. Esta separación es la base de la seguridad en sistemas Linux [0:30].
¿Qué información almacenan los archivos passwd y shadow?
Linux utiliza archivos especiales para registrar la información de cada usuario. Conocerlos es esencial para entender cómo el sistema gestiona las cuentas.
¿Cómo se estructura el archivo /etc/passwd?
El archivo /etc/passwd contiene los datos de todos los usuarios del sistema y solo los administradores pueden visualizarlo [1:10]. Cada línea sigue un formato específico separado por dos puntos:
- Nombre de usuario.
- Contraseña: aparece como una
x porque el valor real se almacena en otro archivo.
- UID: el identificador numérico del usuario.
- GID: el identificador del grupo principal.
- GECOS: un campo opcional con información adicional como nombre completo, dirección o número de teléfono [1:42].
- Directorio home: por ejemplo,
/home/codebars.
- Shell: la terminal de inicio preferida, como
bash o zsh.
¿Qué papel cumple el archivo /etc/shadow?
El archivo shadow es donde se almacenan las contraseñas de forma cifrada mediante un hash robusto [2:15]. Aunque el contenido cifrado no es legible, hay dos indicadores clave que debes conocer:
- Un asterisco (
*) en el campo de contraseña significa que el usuario nunca ha tenido una contraseña asignada [2:30].
- Un signo de exclamación (
!) indica que el usuario ha sido bloqueado y no puede iniciar sesión [2:48].
Esta distinción es muy útil cuando necesitas auditar cuentas o gestionar bloqueos de seguridad directamente desde el sistema.
¿Para qué sirven los grupos y cómo se relacionan con los permisos?
Los grupos son la forma que tiene Linux de concentrar permisos y aplicarlos a varios usuarios a la vez [3:05]. En lugar de asignar permisos individualmente, puedes añadir usuarios a un grupo que ya tiene los accesos configurados.
Sus usos más comunes incluyen:
- Carpetas compartidas: si dos usuarios pertenecen al mismo grupo, ambos pueden acceder a los mismos documentos y directorios.
- Servicios y demonios: muchos servicios externos como Docker o PostgreSQL crean sus propios grupos. Cuando un usuario pertenece al grupo de Docker, obtiene permisos para ejecutar contenedores; si pertenece al grupo de Postgres, puede acceder a la base de datos [3:20].
Estos servicios corren como daemons (demonios) gestionados por init.d, y la pertenencia a sus grupos determina qué usuarios pueden interactuar con ellos.
Dominar la creación, eliminación y modificación de grupos, así como su asignación a usuarios, es una competencia práctica que marca la diferencia en la administración de cualquier servidor Linux. Si te interesa profundizar, comparte en los comentarios qué caso de uso te resulta más relevante.