- Diferenciación técnica entre la modificación de permisos de acceso mediante chmod y el cambio de propiedad de recursos con chown.
- Sistema de representación de permisos basado en notación octal y simbólica para usuarios, grupos y otros.
- Implementación de estrategias de seguridad basadas en el principio de menor privilegio para evitar vulnerabilidades en servidores.
Si te has lanzado a gestionar tu propio servidor VPS o un equipo dedicado, te habrás dado cuenta de que Linux es un sistema diseñado desde la raíz para el trabajo en red. Por eso, la seguridad es el eje central, ya que el control de quién puede leer, editar o ejecutar un archivo es lo que evita que tu información acabe en manos equivocadas o que un proceso malintencionado tumbe todo el sistema.
Para moverte como pez en el agua en este entorno, no basta con saber tirar comandos; hay que entender la lógica detrás de la propiedad de los archivos. En Linux, todo recurso pertenece a un usuario y a un grupo, y es aquí donde entran en juego las herramientas para ajustar estos privilegios, permitiéndonos blindar el sistema sin bloquear el funcionamiento de nuestras aplicaciones.
Entendiendo la anatomía de los permisos

Cuando lanzas un comando ls -l en la terminal, verás una cadena de caracteres que parece un código secreto, algo como -rwxr-xr--. No te asustes, es más sencillo de lo que parece. El primer carácter nos dice qué tipo de elemento tenemos delante: un guion indica un archivo normal, una ‘d’ una carpeta (directorio) y una ‘l’ un enlace simbólico. También existen otros menos comunes como ‘s’ para sockets o ‘p’ para tuberías.
Los siguientes nueve caracteres se dividen en tres ternas iguales. La primera es para el usuario propietario (el que creó el archivo), la segunda para el grupo propietario y la tercera para todos los demás usuarios del sistema. Cada terna puede contener las letras ‘r’ (lectura), ‘w’ (escritura) y ‘x’ (ejecución), o un guion si ese permiso no está concedido.
¿Qué significa realmente cada permiso?
- Lectura (r): En un archivo, te permite abrirlo y ver qué hay dentro. Si hablamos de una carpeta, significa que puedes listar los archivos y subdirectorios que contiene.
- Escritura (w): Te da el poder de modificar el contenido de un archivo o incluso borrarlo. En el caso de los directorios, te permite crear, eliminar o renombrar elementos dentro de ella.
- Ejecución (x): Para un archivo, es lo que permite que un script o programa se lance. En las carpetas, este permiso es vital porque es el que te permite acceder al interior del directorio mediante el comando
cd.
El comando chmod: Ajustando el acceso

El comando chmod (change mode) es nuestra herramienta para alterar estos permisos. Hay dos formas de usarlo: la simbólica, que es más intuitiva, y la octal, que es la preferida por los administradores por ser más rápida.
En el modo simbólico, usamos letras para indicar a quién afecta el cambio (u para usuario, g para grupo, o para otros, a para todos) y signos como ‘+’ para añadir o ‘-‘ para quitar permisos. Por ejemplo, si quieres que el grupo pueda escribir en un archivo, usarías chmod g+w archivo.txt. Es una forma muy flexible de ajustar permisos puntualmente sin alterar el resto de la configuración.
El modo octal utiliza números basados en el sistema binario. Cada permiso tiene un valor: lectura es 4, escritura es 2 y ejecución es 1. Sumando estos valores obtenemos un número del 0 al 7. Por ejemplo, el valor 7 (4+2+1) significa acceso total, mientras que un 5 (4+0+1) significa lectura y ejecución. Así, un comando como chmod 755 carpeta otorga control total al dueño y solo lectura/ejecución al grupo y a los demás.
Gestionando la propiedad con chown y chgrp

A veces, aunque los permisos sean correctos, el archivo no funciona porque el dueño no es el adecuado. Aquí es donde entra chown (change owner). Este comando permite cambiar el usuario y el grupo que poseen el archivo. La sintaxis más común es chown usuario:grupo archivo.
Es muy habitual en servidores web que los archivos deban pertenecer al usuario del servidor (como www-data en Apache o Nginx) para que la web pueda escribir en ciertas carpetas. Si necesitas aplicar este cambio a una carpeta y a todo lo que hay dentro, debes usar la opción recursiva -R, ejecutando por ejemplo chown -R www-data:www-data /var/www/html.
Administración de usuarios y grupos en el sistema

Para que todo lo anterior tenga sentido, primero debemos gestionar quiénes son esos usuarios. En Linux, se utilizan comandos como useradd o adduser para crear cuentas, y passwd para asignarles una clave. Toda esta información se guarda en archivos críticos como /etc/passwd (datos de la cuenta) y /etc/shadow (contraseñas cifradas).
Los grupos son fundamentales para no tener que asignar permisos uno por uno. Con groupadd creamos el grupo y con usermod -aG añadimos usuarios a él. De esta forma, podemos dar permisos colectivos a un equipo de trabajo sobre una carpeta específica sin comprometer la seguridad del resto del sistema.
Sudoers y privilegios elevados
No es recomendable trabajar siempre como root, ya que un error podría borrar todo el sistema. Para ello usamos sudo, que nos permite ejecutar comandos con privilegios de superusuario. La configuración de quién puede hacer qué se encuentra en el archivo /etc/sudoers, el cual debe editarse siempre con el comando visudo para solucionar errores de sudo en Linux y evitar errores de sintaxis que nos dejen fuera del sistema.
Seguridad y buenas prácticas en servidores
Un error garrafal que cometen muchos principiantes es asignar permisos 777 a una carpeta cuando algo no funciona. Esto es abrirle la puerta de par en par a cualquier atacante. Lo ideal es seguir el principio de menor privilegio: dar solo el acceso mínimo necesario para que la tarea se cumpla.
Como regla general, los archivos deberían tener permisos 644 (el dueño escribe, los demás solo leen) y las carpetas 755. Para archivos extremadamente sensibles, como las claves SSH o archivos de configuración con contraseñas (.env), lo correcto es usar el permiso 600, asegurando que nadie más que el propietario pueda siquiera leer el contenido.
Si te encuentras con el temido error 403 Forbidden en tu web, lo más probable es que haya un problema de propiedad o permisos. Antes de hacer cambios drásticos, verifica que el servidor web sea el dueño de los archivos y que los directorios tengan el bit de ejecución activo para poder ser atravesados.
La correcta administración de los usuarios, los grupos y los permisos mediante herramientas como chmod y chown constituye la primera línea de defensa de cualquier servidor Linux. Desde el uso de la máscara umask para definir permisos por defecto, hasta la gestión recursiva de directorios y el control estricto de sudoers, cada ajuste contribuye a crear un entorno estable y resistente ante posibles intrusiones, garantizando que los procesos del sistema y los usuarios humanos coexistan sin interferir en la integridad de los datos.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.