- Funcionamiento del sistema de permisos basado en propietario, grupo y otros usuarios.
- Uso de los comandos chmod y chown para modificar accesos y propiedad de ficheros.
- Diferencias fundamentales entre los permisos aplicados a archivos y directorios.
- Aplicación de la notación octal y simbólica para una administración eficiente.

Si te has aventurado en el mundo de Linux, habrás notado que este sistema no se anda con chiquitas en cuanto a la seguridad. A diferencia de otros sistemas operativos donde cualquiera puede tocar casi cualquier cosa, Linux utiliza un modelo de seguridad multiusuario muy robusto. Esto significa que cada fichero y carpeta tiene asignadas reglas estrictas que deciden quién puede leer, escribir o ejecutar el contenido, evitando que un error humano o un proceso malintencionado mande el sistema al traste.
Entender cómo funciona este entramado es vital para cualquier administrador o usuario curioso. No es solo cuestión de ejecutar comandos al azar, sino de comprender que los permisos son la base de la fiabilidad del sistema. En este artículo vamos a desgranar desde lo más básico hasta los secretos de Linux y comandos más avanzados para que no vuelvas a ver el temido mensaje de «Permission denied» y sepas exactamente cómo desbloquear cualquier archivo de forma segura.
Cómo analizar los permisos actuales
Antes de cambiar nada, lo primero es saber qué está pasando. La herramienta más habitual es el comando . Al ejecutarlo, verás una línea con una cadena de caracteres como -rw-r--r--. El primer carácter nos indica la naturaleza del elemento: un guion para archivos normales, una «d» para directorios y una «l» para enlaces simbólicos. El resto de la cadena se divide en tres bloques de tres caracteres cada uno.
Si necesitas ir un paso más allá y quieres ver los metadatos completos, el comando es tu mejor aliado. Este te mostrará la información en un formato mucho más detallado, incluyendo el número de inode y las representaciones tanto simbólicas como octales, lo que te permite tener una radiografía exacta del archivo en cuestión.
Desglosando la cadena de permisos
La cadena de diez caracteres que vemos al listar archivos no es aleatoria. Los tres primeros caracteres tras el tipo de archivo corresponden al usuario propietario, los tres siguientes al grupo y los últimos tres a todos los demás (otros). Las letras que encontrarás son «r» (lectura), «w» (escritura) y «x» (ejecución). Si ves un guion, significa que ese permiso concreto no ha sido concedido.
Es fundamental entender que estos permisos no actúan igual si hablamos de un archivo o de una carpeta. Por ejemplo, el permiso de lectura en un archivo te deja ver su texto, pero en un directorio te permite listar los archivos que contiene. El de escritura en un archivo permite modificar su contenido, mientras que en una carpeta es lo que te permite borrar o crear nuevos archivos dentro de ella.
Ojo con el permiso de ejecución, que es donde mucha gente se pega un patinazo. En un archivo, sirve para lanzar un script o programa. Sin embargo, en un directorio, el permiso de ejecución es estrictamente necesario para entrar mediante el comando . Sin él, aunque puedas listar el contenido, no podrás acceder a las carpetas internas ni operar con los archivos que haya dentro.
El sistema numérico: Notación Octal
Para los que prefieren la rapidez, Linux permite usar números en lugar de letras. Cada permiso tiene un valor asignado: la lectura vale 4, la escritura 2 y la ejecución 1. Sumando estos valores para cada grupo, obtenemos un número del 0 al 7. Por ejemplo, si quieres que el propietario tenga control total (4+2+1=7), que el grupo solo lea y ejecute (4+1=5) y los demás también (4+1=5), el resultado es el famoso permiso 755.
Hay combinaciones que verás repetidas una y otra vez. El 644 es el estándar para documentos y configuraciones, donde solo el dueño escribe. El 600 es la regla de oro para claves SSH y datos sensibles, ya que impide que cualquier otra persona del sistema pueda echar un vistazo. Por otro lado, el 777 otorga acceso total a todo el mundo; aunque parece la solución rápida a cualquier problema de permisos, es extremadamente peligroso y debe evitarse a toda costa en entornos reales.
Modificando accesos con chmod
Para cambiar estas reglas usamos el comando (change mode). Existen dos formas de usarlo: la numérica y la simbólica. La numérica es directa: y listo. Pero la simbólica es más flexible porque permite añadir o quitar permisos sin alterar los que ya existen usando operadores como +, - o =.
En el modo simbólico, usamos letras para identificar a quién afectamos: para el usuario, para el grupo, para otros y para todos. Si quieres que un script sea ejecutable para todo el mundo, bastaría con un . Si prefieres ser más selectivo y solo darle el permiso al dueño, usarías , manteniendo así un control mucho más granular sobre la seguridad.
Si te encuentras con una estructura de carpetas compleja y quieres aplicar los cambios a todo el contenido, debes usar la opción recursiva -R. Esto aplicará el cambio al directorio seleccionado y a todas sus subcarpetas y archivos. Eso sí, ten mucho cuidado al hacerlo, ya que un error con puede dejar tu sistema en un estado vulnerable o bloquear el acceso a servicios críticos.
Cambio de propiedad y permisos especiales
A veces el problema no es qué permiso tiene el archivo, sino quién es el dueño. Para esto utilizamos (change owner) y (change group). Cambiar el propietario normalmente requiere privilegios de superusuario (sudo), ya que es una operación sensible que podría permitir a un usuario usurpar la identidad de otro en el sistema de archivos.
Para casos más avanzados, existen los permisos especiales. El SUID (Set User ID) hace que un programa se ejecute con los permisos del dueño del archivo y no del que lo lanza; el comando lo usa para modificar la contraseña en archivos protegidos. El SGID (Set Group ID) es genial para carpetas compartidas, ya que hace que los archivos nuevos hereden el grupo de la carpeta. Por último, el Sticky Bit impide que los usuarios borren archivos de otros en carpetas comunes, como sucede en el directorio /tmp.
El misterioso umask y la resolución de problemas
Te preguntarás por qué los archivos nuevos ya vienen con ciertos permisos. Esto se debe a la , una máscara que resta permisos a los valores base (666 para archivos y 777 para carpetas). Por ejemplo, una umask de 0022 dará como resultado archivos con 644 y carpetas con 755. Puedes ajustar este valor en tu archivo de configuración de la shell para que tus archivos nazcan con la seguridad adecuada.
Cuando te topas con un error de «Permission denied», no te desesperes. Si es al ejecutar un script, probablemente te falte el bit de ejecución. Si no puedes borrar un archivo que es tuyo, recuerda que necesitas permiso de escritura en la carpeta padre, no necesariamente en el archivo mismo. Y si SSH se queja de que tus claves son «too open», es porque tienes permisos demasiado permisivos y debes bajarlos a 600 inmediatamente para que el sistema confíe en ellas.
Dominar la gestión de accesos implica saber navegar entre la notación octal y la simbólica, comprender la jerarquía de usuario, grupo y otros, y aplicar con criterio herramientas como , y , siempre priorizando el principio de menor privilegio para mantener el sistema estable y protegido contra accesos no autorizados.
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.
