La gestión de permisos en GNU/Linux es el mecanismo fundamental de control de acceso que determina qué usuarios o grupos pueden leer, modificar o ejecutar archivos y directorios, garantizando la seguridad y el aislamiento de la información en el sistema.
Para un administrador de sistemas, dominar el modelo clásico de propietarios, los modificadores de permisos (chmod, chown, chgrp) y el uso avanzado de permisos especiales (SUID, SGID y Sticky Bit) es indispensable para asegurar una correcta política de privilegios.
Modelo Básico de Permisos y Propiedad
Cada archivo y directorio en Linux está asociado estrictamente a una entidad propietaria y a un grupo, rigiéndose por tres tipos de acciones básicas:
chmod: Modifica los permisos de acceso de un archivo o directorio, ya sea mediante notación simbólica (ej.chmod u+x) o numérica/octal (ej.chmod 755).chown: Cambia el usuario propietario (y opcionalmente el grupo) de un recurso (ej.chown usuario:grupo archivo).chgrp: Modifica exclusivamente el grupo asignado a un archivo o directorio (ej.chgrp nuevo_grupo archivo).
u), el grupo asignado (g) y los demás usuarios del sistema (o). La Lectura (r) permite ver el contenido de un archivo o listar un directorio; la Escritura (w) permite modificar archivos o crear/borrar elementos dentro de un directorio; y la Ejecución (x) permite ejecutar archivos binarios/scripts o atravesar un directorio.chmod, chown y chgrp):
Permisos Especiales (SUID, SGID y Sticky Bit)
Además de los permisos estándar, Linux soporta tres modificadores avanzados de control de acceso que alteran el comportamiento habitual de ejecución y almacenamiento:
root), en lugar de con los privilegios del usuario que lo invoca (representado numéricamente con un 4 en la posición más alta, ej. 4755). Un ejemplo clásico es el comando passwd, que necesita modificar /etc/shadow temporalmente con permisos de superusuario.2770)./tmp), garantiza que únicamente el propietario de un archivo específico (o el usuario root) pueda borrar o renombrar dicho archivo, impidiendo que otros usuarios con permisos de escritura en el directorio eliminen ficheros ajenos (representado con un 1, ej. 1777).Analogía: Imagina un casillero o buzón de documentos en una oficina compartida. Los permisos básicos (lectura, escritura y ejecución) equivalen a las llaves que determinan quién puede abrir la cerradura para leer un informe, quién puede reescribirlo y quién puede llevárselo puesto; el propietario y el grupo definen al autor principal y al departamento responsable del documento; los comandos chmod, chown y chgrp son las órdenes administrativas para cambiar las cerraduras o reasignar responsabilidades; el SUID es como una llave maestra temporal que permite a un empleado común abrir una puerta blindada solo durante los dos segundos que dura una tarea autorizada; el SGID en un directorio es una norma de oficina que obliga a que cualquier documento que se archive allí lleve automáticamente el sello del departamento; y el Sticky Bit es un buzón común donde cualquiera puede echar cartas, pero solo el dueño de cada carta (o el director general) tiene permiso para sacarla o destruirla.
Actividad práctica
Objetivo:
Modificar permisos y propietarios de archivos utilizando comandos de consola y analizar el funcionamiento de los permisos especiales.
Tareas:
- Crea un archivo de texto de pruebas en la terminal y utiliza el comando
chmod 644para establecer permisos de lectura y escritura para el propietario y solo lectura para el grupo y otros. - Cambia el propietario del archivo recién creado utilizando el comando
sudo chown otro_usuario:nuevo_grupo archivo.txt. - Investiga los permisos actuales de un directorio compartido del sistema como
/tmpejecutandols -ld /tmppara identificar la presencia del Sticky Bit (representado con la letraten los permisos).
Preguntas de reflexión:
/tmp frente a la supresión accidental o malintencionada de archivos entre usuarios?chown?Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué diferencia hay entre notación simbólica y octal?
La notación simbólica utiliza letras y operadores directos (como chmod u+x o g-w) para añadir o quitar permisos de forma específica sin alterar los demás. La notación octal o numérica utiliza un código de tres o cuatro dígitos (como 755 o 644) que define de golpe y de manera absoluta el estado exacto de todos los permisos (lectura, escritura y ejecución) para cada una de las tres categorías de usuarios.
2. ¿Por qué el SUID es crítico para la seguridad?
Porque otorga temporalmente los privilegios del propietario del archivo (frecuentemente el superusuario root) a cualquier usuario que ejecute el programa. Si un archivo con SUID contiene fallos de diseño o vulnerabilidades de código (como desbordamientos de búfer), un atacante puede explotarlo para ejecutar comandos arbitrarios con privilegios máximos y tomar el control total del sistema operativo.
3. ¿Qué utilidad aporta el Sticky Bit en /tmp?
En un directorio público donde cualquier usuario puede crear archivos, el Sticky Bit restringe los derechos de borrado de forma que un usuario solo pueda eliminar los archivos de su absoluta propiedad. Esto evita que usuarios malintencionados o descuidados borren archivos temporales generados por otros usuarios o por el propio sistema operativo.
4. ¿Cómo simplifica el SGID la administración colaborativa?
Por defecto, al crear un archivo, Linux le asigna como grupo propietario el grupo principal del usuario creador. Al activar el SGID en un directorio compartido, se obliga a que cualquier archivo o subcarpeta creada dentro de él herede automáticamente el grupo del directorio principal, permitiendo que todos los miembros del equipo tengan acceso inmediato y conjunto sin necesidad de reasignar permisos manualmente.
5. ¿Qué sucede si un usuario sin privilegios intenta usar chown?
El sistema operativo denegará la operación y arrojará un error de permisos insuficientes. Cambiar el propietario de un archivo es una prerrogativa de seguridad reservada exclusivamente al usuario administrador (root), evitando que los usuarios suplanten la autoría de los recursos o eludan cuotas y restricciones de espacio.