🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Guía de permisos de archivos en Linux (chmod, chown)

Actualizado el 27 de marzo de 2026

¿Por qué son importantes los permisos de archivos en Linux?

Si alguna vez has intentado editar un archivo de configuración y te ha aparecido un error de "Permiso denegado", o has subido una web a tu servidor y las imágenes no cargaban, ya has topado con los permisos de Linux. Entender cómo funcionan es esencial para gestionar un servidor de forma segura, ya sea para un blog, una tienda online o una aplicación personal.

En este artículo, vamos a desglosar de forma sencilla y práctica cómo funcionan los permisos de archivos en Linux, qué son los comandos chmod y chown, y cómo usarlos para solucionar los problemas más comunes sin volverte loco en el intento.

Piensa en los permisos como en las reglas de una casa compartida. En esa casa tienes habitaciones (archivos y carpetas) y varios compañeros (usuarios). Algunos pueden entrar en tu habitación y leer tus apuntes, otros solo pueden mirar desde la puerta, y otros ni siquiera pueden acercarse. Los permisos de Linux definen exactamente eso: quién puede hacer qué con cada archivo.


Conceptos básicos: Usuarios, Grupos y Otros

Antes de lanzarnos a usar comandos, necesitas entender tres conceptos clave. Linux organiza el acceso a los archivos en tres niveles de identidad:

  1. Usuario (u): Es el propietario del archivo. Normalmente, es quien lo creó. Puedes cambiar quién es el propietario con el comando chown.
  2. Grupo (g): Los usuarios pueden pertenecer a grupos. Un grupo puede tener varios usuarios, y se les pueden dar permisos específicos sobre un archivo sin tener que dárselos a todo el mundo. Por ejemplo, un grupo llamado editores podría tener permiso para modificar los artículos de una web.
  3. Otros (o): Es todo el resto de usuarios del sistema que no son el propietario ni pertenecen al grupo asignado. Aquí es donde entra el "público en general", como los visitantes de tu web.

Además de estas tres identidades, cada archivo tiene tres tipos de permisos o acciones que se pueden permitir o denegar:

  • Lectura (r): Permite ver el contenido del archivo o listar el contenido de un directorio. El valor numérico es 4.
  • Escritura (w): Permite modificar el archivo o crear/eliminar archivos dentro de un directorio. El valor numérico es 2.
  • Ejecución (x): Permite ejecutar el archivo como un programa o script. En el caso de un directorio, permite entrar en él (usar cd). El valor numérico es 1.

Cómo ver los permisos actuales: el comando ls -l

Para saber qué permisos tiene un archivo, usa el comando ls -l en el directorio donde se encuentra.

ls -l

Verás una salida similar a esta:

-rw-r--r-- 1 usuario grupo 1234 feb 12 10:30 archivo.txt
drwxr-xr-x 2 usuario grupo 4096 feb 12 10:31 carpeta

Vamos a descifrar la primera parte, que es la clave:

  • El primer carácter indica el tipo de archivo. - significa que es un archivo normal, d significa que es un directorio (carpeta).
  • Los siguientes 9 caracteres se agrupan de tres en tres: rw- (usuario), r-- (grupo), r-- (otros).
  • En el ejemplo -rw-r--r--, el propietario tiene permisos de lectura y escritura (rw-), el grupo solo de lectura (r--), y otros solo de lectura (r--).

En el caso del directorio drwxr-xr-x, el propietario tiene lectura, escritura y ejecución (rwx), mientras que el grupo y otros solo tienen lectura y ejecución (r-x). No pueden crear ni borrar archivos dentro.


Cambiar permisos con chmod

El comando chmod (change mode) es tu herramienta principal para cambiar los permisos de un archivo o directorio. Hay dos formas de usarlo: con modo simbólico (con letras) y con modo numérico (con números). Te recomiendo que aprendas el modo numérico, ya que es más rápido y se usa en casi todos los tutoriales.

El método numérico (el más usado)

Cada permiso tiene un valor numérico:

  • Lectura (r) = 4
  • Escritura (w) = 2
  • Ejecución (x) = 1

Para cada identidad (usuario, grupo, otros), sumas los valores de los permisos que quieres dar.

  • 7 = 4+2+1 (lectura, escritura y ejecución)
  • 6 = 4+2 (lectura y escritura)
  • 5 = 4+1 (lectura y ejecución)
  • 4 = 4 (solo lectura)
  • 0 = 0 (sin permisos)

Entonces, el comando chmod con números se escribe así:

chmod [permisos_usuario][permisos_grupo][permisos_otros] [archivo]

Ejemplo práctico: Quieres dar permisos de lectura y escritura al propietario, y solo lectura al grupo y a otros. El cálculo sería: 6 (usuario) 4 (grupo) 4 (otros). El comando sería:

chmod 644 archivo.txt

Otro ejemplo: Para un script que quieres que todos puedan ejecutar, pero solo el propietario pueda modificar, usarías 755 (7 para usuario, 5 para grupo, 5 para otros).

chmod 755 script.sh

[TIP] Usa chmod -R para aplicar los permisos de forma recursiva a todos los archivos y subcarpetas dentro de un directorio. Por ejemplo: chmod -R 755 carpeta/. Ten mucho cuidado con esto, ya que puede cambiar permisos de muchos archivos a la vez.

El método simbólico (con letras)

Este método usa letras para referirse a las identidades y a los permisos. Es útil para cambios rápidos y específicos.

  • Identidades: u (usuario), g (grupo), o (otros), a (todos).
  • Operadores: + (añade permiso), - (quita permiso), = (establece el permiso exacto).

Ejemplos:

# Añade permiso de ejecución para el usuario propietario
chmod u+x script.sh

# Quita el permiso de escritura para el grupo
chmod g-w archivo.txt

# Establece permisos de lectura y escritura para todos
chmod a=rw archivo.txt

Cambiar el propietario y grupo con chown

El comando chown (change owner) se usa para cambiar quién es el propietario de un archivo y a qué grupo pertenece. Es fundamental cuando mueves archivos entre usuarios o cuando configuras un servidor web y necesitas que el usuario del servidor web (como www-data) sea el propietario de los archivos.

La sintaxis básica es:

chown [nuevo_propietario]:[nuevo_grupo] [archivo]

Ejemplos:

# Cambia el propietario a 'usuario1' y el grupo a 'grupo1'
chown usuario1:grupo1 archivo.txt

# Solo cambia el propietario, el grupo se mantiene igual
chown usuario1 archivo.txt

# Solo cambia el grupo (usando chgrp, pero es equivalente)
chown :grupo1 archivo.txt

Al igual que con chmod, puedes usar -R para aplicar el cambio de forma recursiva a todos los archivos de un directorio.

chown -R usuario1:grupo1 /ruta/de/la/carpeta

[WARNING] Cambiar el propietario de archivos del sistema o de otros usuarios puede romper servicios o dejar tu sistema en un estado inestable. Asegúrate siempre de saber qué estás haciendo y a qué usuario debes asignar la propiedad.


Casos prácticos y resolución de problemas comunes

Aquí tienes algunos escenarios típicos donde necesitarás usar estos comandos.

Caso 1: Mi web da error 403 (Acceso denegado) o las imágenes no cargan

Este es uno de los problemas más frecuentes en servidores web. La causa suele ser que los permisos de los archivos no permiten al servidor web leerlos.

Solución:

  1. Accede a la raíz de tu web (por ejemplo, /home/usuario/web/midominio/public_html).
  2. Establece los permisos de los directorios a 755 y los de los archivos a 644.
# Para directorios (encuentra todos y cambia sus permisos)
find . -type d -exec chmod 755 {} \;

# Para archivos
find . -type f -exec chmod 644 {} \;
  1. Asegúrate de que el propietario y el grupo sean los correctos. En la mayoría de los casos, el usuario del servidor web (a menudo www-data en sistemas Debian/Ubuntu) necesita acceso. Puedes cambiar el grupo de tus archivos a www-data y darle permisos de lectura al grupo, o simplemente cambiar el propietario.
chown -R usuario:www-data /ruta/de/tu/web

[INFO] En Syspanel (el panel de control que usamos en nuestros servidores, accesible por el puerto 2106), puedes gestionar estos permisos de forma visual en el gestor de archivos, pero entender los comandos te dará mucho más control y te ayudará a resolver problemas más rápido.

Caso 2: No puedo ejecutar un script

Si has descargado un script y al intentar ejecutarlo te dice "Permiso denegado", es porque no tiene permisos de ejecución.

Solución:

chmod +x mi_script.sh

O si quieres ser más específico:

chmod 755 mi_script.sh

Caso 3: Necesito que un grupo de usuarios pueda editar archivos

Imagina que tienes un equipo de trabajo y quieres que todos puedan modificar los archivos de un proyecto, pero no quieres que cualquiera pueda hacerlo.

Solución:

  1. Crea un grupo (si no existe) y añade a los usuarios.
sudo groupadd equipo
sudo usermod -a -G equipo usuario1
sudo usermod -a -G equipo usuario2
  1. Cambia el grupo del directorio del proyecto.
chgrp -R equipo /ruta/del/proyecto
  1. Da permisos de escritura al grupo y asegúrate de que los nuevos archivos creados hereden el grupo. Esto último se hace con el bit setgid, pero es un concepto avanzado que veremos en otro artículo. Por ahora, con chmod g+w es suficiente para los archivos existentes.
chmod -R g+w /ruta/del/proyecto

Preguntas frecuentes (FAQ)

¿Cuál es la diferencia entre chmod y chown?

chmod cambia los permisos de lectura, escritura y ejecución sobre un archivo. chown cambia el propietario y el grupo del archivo. Son complementarios: primero decides quién es el dueño (chown) y luego qué puede hacer (chmod).

¿Qué significan los permisos 777?

Significa que todos (usuario, grupo y otros) tienen permisos de lectura, escritura y ejecución. Es muy cómodo para desarrollo, pero es un riesgo de seguridad enorme en producción, ya que cualquier usuario del sistema podría borrar o modificar tus archivos.

[WARNING] Evita usar permisos 777 en un entorno de producción. Es la causa de la mayoría de los hackeos en webs con alojamiento compartido. Siempre intenta usar permisos más restrictivos como 755 para directorios y 644 para archivos, y solo da 777 temporalmente si es estrictamente necesario.

¿Cómo puedo ver los permisos de un archivo en concreto?

Usa ls -l nombre_del_archivo. Si quieres ver todos los archivos de un directorio, usa ls -l o ls -la (para incluir archivos ocultos).

¿Qué hago si no soy el propietario de un archivo y necesito cambiarlo?

Necesitas ser un superusuario o tener permisos de sudo. Los comandos serían:

sudo chown nuevo_usuario archivo.txt
sudo chmod 755 archivo.txt

¿Qué es el puerto 2106 y qué relación tiene con Syspanel?

Syspanel es el panel de control que utilizamos para gestionar tus sitios web, bases de datos y cuentas de correo. Puedes acceder a él a través de tu navegador usando el puerto 2106 (por ejemplo, https://tu-servidor:2106). Dentro de Syspanel, en la sección de "Archivos", puedes cambiar permisos y propietarios de forma gráfica sin necesidad de usar la terminal, aunque conocer los comandos te permitirá hacerlo más rápido y entender qué ocurre entre bastidores.


Resumen y buenas prácticas

Dominar los permisos de archivos en Linux es una habilidad fundamental para cualquier persona que gestione un servidor. No es complicado una vez que entiendes la lógica de las identidades (usuario, grupo, otros) y las acciones (leer, escribir, ejecutar).

Para terminar, aquí tienes un resumen rápido:

  • Usa ls -l para inspeccionar los permisos.
  • Usa chmod con números (ej. 644, 755) para cambiar permisos de forma rápida y estandarizada.
  • Usa chown para asignar el propietario correcto a los archivos.
  • Aplica -R solo cuando estés seguro de que quieres cambiar todo el árbol de directorios.
  • Prioriza la seguridad: empieza con permisos restrictivos y ve ampliándolos solo si es necesario.

Con esta guía, podrás solucionar los problemas de permisos más comunes y gestionar tus archivos en Linux con mucha más confianza. Si te surge alguna duda, no dudes en consultar la documentación de tu sistema o contactar con tu proveedor de hosting. ¡Buena suerte!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel