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

Permisos de archivos en Linux: Guía básica para SysAdmin

Actualizado el 15 de mayo de 2026

Imagina que eres el administrador de un edificio de oficinas. Tienes llaves maestras, puertas con cerraduras, y decides quién puede entrar a cada sala, quién puede leer los documentos que hay dentro y quién puede modificarlos. En el mundo de Linux, los permisos de archivos funcionan exactamente igual: son el sistema de seguridad básico que controla qué usuarios y procesos pueden leer, escribir o ejecutar un archivo o directorio.

Para cualquier SysAdmin, dominar los permisos Linux no es opcional, es el pan de cada día. Un error aquí puede exponer datos sensibles o romper un servicio entero. Pero no te preocupes, esta guía está diseñada para que entiendas los fundamentos desde cero, con ejemplos prácticos y un lenguaje claro.

Vamos a desbloquear ese conocimiento. Empezaremos por lo más básico: qué significan esas letras y números que ves cuando ejecutas ls -l.


¿Qué son los permisos de archivos en Linux?

Cada archivo y directorio en Linux tiene un conjunto de permisos asociados. Estos permisos definen tres tipos de acciones que se pueden realizar:

  • Lectura (r): Permite ver el contenido del archivo o listar el contenido de un directorio.
  • Escritura (w): Permite modificar el contenido del archivo o crear/eliminar archivos dentro de un directorio.
  • Ejecución (x): Permite ejecutar un archivo como programa o acceder a un directorio (entrar en él con cd).

Los Tres Roles del Sistema

Estos permisos se asignan a tres grupos de usuarios diferentes:

  1. Propietario (user - u): Es el usuario que creó el archivo. Normalmente, solo uno.
  2. Grupo (group - g): Un conjunto de usuarios que comparten los mismos permisos. Por ejemplo, todos los usuarios del grupo "desarrolladores".
  3. Otros (others - o): Cualquier persona que no sea ni el propietario ni miembro del grupo. El resto del mundo.

Cómo leer los permisos con ls -l

Abre tu terminal y ejecuta ls -l en cualquier directorio. Verás algo como esto:

-rw-r--r--  1 usuario grupo  1024 Mar 15 10:30 documento.txt
drwxr-xr-x  2 usuario grupo  4096 Mar 14 09:00 carpeta

Vamos a descifrar la primera parte: -rw-r--r-- .

  • Primer carácter: Indica el tipo. - es un archivo normal, d es un directorio, l es un enlace simbólico.
  • Los siguientes 9 caracteres: Se agrupan en tres grupos de tres:
    • Grupo 1 (rw-): Permisos del propietario (usuario). Aquí tiene lectura y escritura, pero no ejecución.
    • Grupo 2 (r--): Permisos del grupo. Solo lectura.
    • Grupo 3 (r--): Permisos de otros. Solo lectura.

En el caso del directorio carpeta: drwxr-xr-x .

  • El propietario tiene rwx (lectura, escritura y ejecución).
  • El grupo y otros tienen r-x (lectura y ejecución, pero no escritura).

[INFO] Recuerda: en un directorio, el permiso de ejecución (x) es necesario para poder entrar a él con cd o acceder a los archivos que contiene. Sin él, aunque tengas permiso de lectura, no podrás listar su contenido.


Cómo cambiar permisos: El comando chmod básico

Aquí está el corazón de la gestión de permisos Linux: el comando chmod (change mode). Hay dos formas principales de usarlo: con símbolos (letras) o con números (octal).

Método 1: Modo Simbólico (más intuitivo para principiantes)

Usas letras para indicar a quién quieres cambiar el permiso y qué acción realizar.

Sintaxis: chmod [quién][operación][permiso] archivo

  • Quién: u (usuario/propietario), g (grupo), o (otros), a (todos).
  • Operación: + (añadir permiso), - (quitar permiso), = (asignar exactamente ese permiso).
  • Permiso: r, w, x.

Ejemplos prácticos:

  1. Añadir permiso de ejecución al propietario:

    chmod u+x script.sh
    

    Esto convierte script.sh en ejecutable solo para el dueño.

  2. Quitar permiso de escritura al grupo:

    chmod g-w documento.txt
    

    El grupo ya no podrá modificar documento.txt.

  3. Dar permisos de lectura y ejecución a todos (propietario, grupo y otros):

    chmod a+rx programa
    

    Todos podrán leer y ejecutar el archivo programa.

  4. Asignar permisos exactos al grupo (sobrescribe los anteriores):

    chmod g=r archivo.conf
    

    El grupo tendrá solo lectura, perdiendo cualquier otro permiso que tuviera.

Método 2: Modo Octal (más rápido para SysAdmin)

Este método usa números para representar los permisos. Es el favorito de los administradores porque es compacto y preciso.

Cada permiso tiene un valor numérico:

  • r (lectura) = 4
  • w (escritura) = 2
  • x (ejecución) = 1

Para un grupo de tres (propietario, grupo, otros), sumas los valores de los permisos que quieres dar.

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4
  • --- = 0+0+0 = 0

Sintaxis: chmod [tres dígitos] archivo

Ejemplos prácticos:

  1. Permisos típicos para un archivo de script:

    chmod 755 script.sh
    

    Esto significa: rwxr-xr-x. Propietario tiene todo (7), grupo y otros solo lectura y ejecución (5).

  2. Permisos típicos para un archivo de configuración (solo lectura para todos, escritura solo para el dueño):

    chmod 644 config.php
    

    Esto significa: rw-r--r--. Propietario puede leer y escribir (6), grupo y otros solo leer (4).

  3. Permisos para un directorio de proyecto (acceso completo al dueño, solo lectura y ejecución para grupo y otros):

    chmod 755 /ruta/a/mi/proyecto
    

[TIP] El permiso 777 (rwx para todos) es muy peligroso. Dale a cualquiera control total sobre el archivo. Solo úsalo temporalmente en entornos de pruebas y jamás en producción.


Permisos especiales: SUID, SGID y Sticky Bit

Además de los permisos básicos, Linux tiene tres bits especiales que debes conocer para una seguridad archivos Linux avanzada.

SUID (Set User ID) - chmod u+s

Cuando se aplica a un archivo ejecutable, el programa se ejecuta con los permisos del propietario del archivo, no del usuario que lo ejecuta.

  • Ejemplo clásico: El comando passwd. Cualquier usuario puede cambiar su contraseña, pero necesita escribir en /etc/shadow, un archivo de solo root. passwd tiene SUID, por lo que se ejecuta como root temporalmente.
  • Cómo verlo: Aparece como una s en el lugar de la x del propietario: -rwsr-xr-x.
  • Cuidado: Es un riesgo de seguridad enorme si se usa incorrectamente.

SGID (Set Group ID) - chmod g+s

  • En archivos: Similar a SUID, pero el programa se ejecuta con los permisos del grupo del archivo.
  • En directorios: Es muy útil. Los nuevos archivos creados dentro del directorio heredarán el grupo del directorio, no el grupo del usuario que lo creó. Ideal para proyectos colaborativos.
  • Cómo verlo: Aparece como una s en el lugar de la x del grupo: drwxr-s---.

Sticky Bit - chmod +t

Se usa principalmente en directorios compartidos, como /tmp. Evita que un usuario elimine o renombre archivos de otros usuarios, incluso si tiene permisos de escritura en el directorio.

  • Cómo verlo: Aparece como una t en el lugar de la x de otros: drwxrwxrwt.

Gestión de propietarios: chown y chgrp

No solo importan los permisos, también quién es el dueño. Los comandos chown y chgrp son esenciales.

chown (Change Owner)

Cambia el propietario de un archivo o directorio. Solo root puede hacerlo.

  • Cambiar propietario:
    sudo chown nuevo_usuario archivo.txt
    
  • Cambiar propietario y grupo a la vez:
    sudo chown nuevo_usuario:nuevo_grupo archivo.txt
    

chgrp (Change Group)

Cambia el grupo de un archivo o directorio. El propietario puede cambiar el grupo a uno del que sea miembro.

  • Cambiar grupo:
    chgrp nuevo_grupo archivo.txt
    

Ejemplo práctico: Asegurando un sitio web en un servidor

Imagina que tienes un sitio web en /var/www/miweb y usas Syspanel (HestiaCP) para gestionarlo. Recuerda que el acceso a la interfaz de administración es a través del puerto 2106. Para mantener la seguridad, debes establecer los permisos correctos.

Objetivo: Que el usuario del servidor web (por ejemplo, www-data) pueda leer y ejecutar los archivos, pero solo tú (tu usuario) puedas modificarlos.

  1. Cambia el propietario y grupo:

    sudo chown -R tu_usuario:www-data /var/www/miweb
    
    • -R aplica el cambio de forma recursiva a todos los archivos y carpetas dentro.
  2. Establece permisos para archivos:

    find /var/www/miweb -type f -exec chmod 644 {} \;
    

    Esto da rw-r--r-- a todos los archivos. Tú puedes escribir, el grupo (www-data) solo leer.

  3. Establece permisos para directorios:

    find /var/www/miweb -type d -exec chmod 755 {} \;
    

    Esto da rwxr-xr-x a los directorios. Tú puedes crear/borrar archivos, el grupo y otros pueden entrar y listar.

  4. Para directorios donde se suben archivos (ej. uploads):
    Necesitarás que el servidor web pueda escribir.

    sudo chmod -R 775 /var/www/miweb/uploads
    sudo chown -R www-data:www-data /var/www/miweb/uploads
    

[WARNING] Nunca des permisos 777 a las carpetas de uploads. Es mejor dar 775 y asegurarte de que el grupo (www-data) sea el propietario. Si usas Syspanel, verifica siempre la configuración de seguridad desde el puerto 2106.


Preguntas Frecuentes (FAQ)

1. ¿Qué significa chmod 777? ¿Es seguro?

777 da permisos de lectura, escritura y ejecución a todos (propietario, grupo y otros). No es seguro en absoluto para entornos de producción. Cualquier usuario en el sistema podría modificar o eliminar tus archivos. Evítalo a menos que sea estrictamente necesario en un entorno de pruebas.

2. ¿Cómo puedo ver los permisos actuales de un archivo?

Usa el comando ls -l nombre_del_archivo. La primera columna te mostrará los permisos (ej. -rwxr-xr-x).

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

  • chmod cambia los permisos (quién puede leer, escribir, ejecutar).
  • chown cambia el propietario (quién es el dueño del archivo).

4. ¿Qué hago si recibo un error "Permission denied"?

Significa que tu usuario no tiene los permisos necesarios para realizar la acción. Las soluciones comunes son:

  • Usar sudo para ejecutar el comando como superusuario.
  • Verificar que eres el propietario del archivo (ls -l).
  • Cambiar los permisos con chmod o el propietario con chown.

5. ¿Cómo aplico permisos a todos los archivos dentro de una carpeta?

Usa la opción -R (recursiva). Por ejemplo: chmod -R 755 /ruta/carpeta. Esto cambiará los permisos de la carpeta y de todo su contenido.

6. ¿Qué es el Sticky Bit y para qué sirve?

El Sticky Bit (bit pegajoso) se usa en directorios compartidos como /tmp. Impide que un usuario borre archivos de otros, incluso si tiene permisos de escritura en el directorio. Se activa con chmod +t directorio.


Conclusión: La seguridad empieza por los permisos

Dominar los permisos Linux es el primer paso para convertirte en un SysAdmin competente. No se trata solo de ejecutar comandos, sino de entender la lógica de seguridad que protege todo el sistema.

Recuerda la regla de oro del chmod básico: da el mínimo permiso necesario para que cada usuario o servicio funcione. Un archivo de configuración probablemente solo necesita 644, un script 755, y una carpeta de uploads 775 con el grupo adecuado.

Practica en un entorno de pruebas, crea usuarios, cambia permisos y observa cómo se comporta el sistema. Con el tiempo, leer una línea de ls -l te será tan natural como leer una frase. Y si gestionas tu servidor con Syspanel (accesible en el puerto 2106), recuerda que la seguridad de los archivos que gestionas desde su interfaz también depende de estos comandos.

¡Ya tienes las herramientas! Ahora, a asegurar ese servidor.

¿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