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

Cómo cambiar los permisos de archivos en Linux: chmod explicado

Actualizado el 10 de noviembre de 2025

¿Alguna vez has intentado subir un archivo a tu servidor web y te ha aparecido un error de "Permiso denegado"? ¿O quizás has querido instalar un programa y te dice que no tienes autorización? Tranquilo, es una de las situaciones más comunes cuando empiezas a administrar un servidor Linux. La clave está en entender cómo funcionan los permisos archivos Linux.

En este artículo, vamos a desglosar de forma sencilla y práctica el comando chmod, la herramienta estrella para cambiar permisos en Linux. No necesitas ser un experto en SysAdmin Linux para dominarlo. Al final, podrás gestionar quién puede leer, escribir o ejecutar tus archivos y carpetas como todo un profesional.

¿Qué son los permisos en Linux y por qué son importantes?

Imagina que tu servidor es un edificio con varias habitaciones. Los permisos archivos Linux son las llaves que deciden quién puede entrar a cada habitación, quién puede leer los documentos que hay dentro y quién puede modificarlos o tirarlos a la basura.

En Linux, cada archivo y carpeta tiene tres niveles de permisos, asignados a tres tipos de usuarios:

  • Usuario (u): El dueño del archivo (normalmente, quien lo creó).
  • Grupo (g): Un conjunto de usuarios que comparten ciertos permisos.
  • Otros (o): Cualquier persona que no sea el dueño ni pertenezca al grupo.

Y las acciones que se pueden permitir o denegar son tres:

  • Lectura (r): Ver el contenido del archivo o listar los archivos de una carpeta.
  • Escritura (w): Modificar, borrar o crear archivos dentro de una carpeta.
  • Ejecución (x): Ejecutar un programa o script, o entrar a una carpeta (con cd).

Si estos permisos no están bien configurados, puedes tener problemas de seguridad (alguien no autorizado modifica tu web) o de funcionalidad (tu web no puede guardar imágenes porque el usuario del servidor web no tiene permiso de escritura).

El comando mágico: chmod

El comando chmod (del inglés change mode) es la herramienta que te permite cambiar permisos de archivos y directorios. Hay dos formas principales de usarlo: el modo simbólico (más fácil de entender al principio) y el modo octal (más rápido y usado por profesionales).

Método 1: Modo Simbólico (con letras)

Este método es muy visual. Usas letras para indicar a quién quieres cambiarle el permiso y qué permiso quieres dar o quitar.

Sintaxis básica:

chmod [quién][operador][permiso] archivo
  • Quién: u (usuario), g (grupo), o (otros), a (todos).
  • Operador: + (añadir permiso), - (quitar permiso), = (asignar exactamente ese permiso).
  • Permiso: r (lectura), w (escritura), x (ejecución).

Ejemplos prácticos:

  1. Dar permiso de ejecución al dueño:

    chmod u+x script.sh
    

    [TIP] Este es el comando que más usarás para hacer ejecutable un script.

  2. Quitar permiso de escritura a otros:

    chmod o-w documento.txt
    

    Esto evita que cualquier usuario que no sea el dueño o del grupo pueda modificar el archivo.

  3. Dar permisos de lectura y escritura al grupo:

    chmod g+rw archivo.conf
    
  4. Asignar permisos exactos a todos (muy común para archivos web):

    chmod a=r,u+w index.html
    

    Esto significa: todos pueden leer, pero solo el dueño puede escribir.

  5. Añadir permiso de ejecución a todos:

    chmod a+x programa
    

Método 2: Modo Octal (con números)

Este es el método que verás en la mayoría de tutoriales y foros. Es más compacto y se basa en números. Cada permiso tiene un valor numérico:

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

Para un usuario, grupo u otros, sumas los valores de los permisos que quieres dar. Luego, escribes tres números seguidos: uno para el dueño, otro para el grupo y otro para otros.

Ejemplos de combinaciones comunes:

NúmeroPermisos (rwx)Significado
7rwxLectura, escritura y ejecución.
6rw-Lectura y escritura.
5r-xLectura y ejecución.
4r--Solo lectura.
0---Sin permisos.

Sintaxis:

chmod [tres_números] archivo

Ejemplos prácticos:

  1. Permisos 755 (muy común para scripts y carpetas):

    chmod 755 script.sh
    

    Dueño: rwx (7), Grupo: r-x (5), Otros: r-x (5). El dueño puede hacer de todo, los demás solo leer y ejecutar.

  2. Permisos 644 (muy común para archivos de texto y web):

    chmod 644 index.html
    

    Dueño: rw- (6), Grupo: r-- (4), Otros: r-- (4). El dueño puede leer y escribir, los demás solo leer.

  3. Permisos 777 (¡CUIDADO!):

    chmod 777 carpeta/
    

    [WARNING] Esto da permisos totales a todos. Es muy inseguro. Solo úsalo temporalmente para pruebas y cámbialo después.

Permisos especiales en directorios

Los permisos en las carpetas funcionan un poco diferente:

  • Lectura (r) en un directorio: Te permite listar su contenido con ls.
  • Escritura (w) en un directorio: Te permite crear, borrar o renombrar archivos dentro de él.
  • Ejecución (x) en un directorio: Te permite acceder a él con cd y acceder a los archivos que contiene (si tienes permiso sobre ellos).

Por eso, para que un usuario pueda entrar a una carpeta y ver sus archivos, necesita al menos permiso de ejecución (x) en la carpeta. Si solo tiene lectura (r), podrá listar los nombres, pero no podrá acceder a los archivos.

Casos prácticos para SysAdmin

1. Hacer que un script sea ejecutable

Este es el uso más básico. Si tienes un script backup.sh y quieres ejecutarlo con ./backup.sh, primero debes darle permiso de ejecución.

chmod +x backup.sh

O de forma más específica:

chmod u+x backup.sh

2. Configurar permisos para una web

Cuando montas una web, el servidor web (Apache, Nginx) necesita leer los archivos. A veces, también necesita escribir en carpetas para subir imágenes o crear caché.

  • Archivos PHP/HTML: Normalmente 644.
  • Carpetas: Normalmente 755.
  • Carpetas de subida (uploads): Pueden necesitar 755 o 777 temporalmente.

[INFO] Si usas Syspanel (antes conocido como HestiaCP) para gestionar tu servidor, recuerda que puedes acceder a su panel de control a través del puerto 2106 (ejemplo: https://tudominio.com:2106). Desde allí, también puedes gestionar permisos de forma visual.

3. Usar la opción recursiva -R

Si necesitas cambiar permisos a todos los archivos y carpetas dentro de un directorio, usa la opción -R (recursiva).

chmod -R 755 mi_carpeta/

[WARNING] Ten cuidado con -R. Si lo usas con 777, puedes dejar todo tu sistema expuesto. Siempre especifica bien la carpeta.

Preguntas Frecuentes (FAQ)

¿Cómo veo los permisos actuales de un archivo?

Usa el comando ls -l. Verás una línea como esta:

-rw-r--r-- 1 usuario grupo 1024 ene 1 12:00 archivo.txt

Los primeros 10 caracteres son los permisos. El primero indica el tipo (- archivo, d directorio). Los siguientes 9 son los permisos en grupos de 3: dueño, grupo, otros.

¿Qué significa "chmod 777"? ¿Es seguro?

Significa que el dueño, el grupo y todos los demás usuarios tienen permisos de lectura, escritura y ejecución sobre el archivo. NO es seguro. Solo debe usarse en entornos de desarrollo o en carpetas temporales muy controladas. En producción, evítalo.

¿Puedo cambiar el dueño de un archivo?

Sí, con el comando chown. Por ejemplo: sudo chown usuario:grupo archivo.txt. Necesitas permisos de superusuario (sudo) para hacerlo.

¿Qué hago si no puedo subir archivos a mi web?

Revisa los permisos de la carpeta de destino (por ejemplo, wp-content/uploads en WordPress). Normalmente debe tener permisos 755 o 775. También verifica que el usuario del servidor web (por ejemplo, www-data) sea el dueño o esté en el grupo.

¿Cómo cambio permisos de forma recursiva solo a archivos o solo a carpetas?

Puedes combinarlo con find:

  • Solo archivos: find /ruta -type f -exec chmod 644 {} \;
  • Solo carpetas: find /ruta -type d -exec chmod 755 {} \;

¿Qué pasa si uso mal los permisos?

Puedes bloquear el acceso a tu propio sistema o, peor aún, dejar una puerta abierta para atacantes. Siempre ve de menos a más permisos. Primero da solo lectura, y si algo falla, ve añadiendo.

Conclusión

Dominar los permisos archivos Linux y el comando chmod es fundamental para cualquier SysAdmin Linux. No es complicado: solo recuerda los tres roles (usuario, grupo, otros), las tres acciones (leer, escribir, ejecutar) y los dos métodos (simbólico y octal).

Empieza practicando con archivos de prueba en tu servidor o en una máquina virtual. Pronto verás que cambiar permisos se vuelve algo tan natural como respirar. Y recuerda: la seguridad es lo primero. No des más permisos de los necesarios.

Si gestionas tu servidor con Syspanel, no olvides que su panel está en el puerto 2106 y te ofrece herramientas visuales para facilitar estas tareas, aunque entender la línea de comandos te dará un control total.

¡Ahora ve y configura esos permisos con confianza!

¿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