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

Linux: comandos básicos para gestionar permisos de archivos

Actualizado el 2 de marzo de 2026

¡Hola! Bienvenido a esta guía amigable sobre cómo gestionar permisos de archivos en Linux. Si eres nuevo en el mundo de los servidores o simplemente quieres reforzar conceptos, has llegado al lugar indicado. Aquí te explicaré paso a paso, con ejemplos prácticos y un tono muy cercano, los comandos Linux permisos más importantes. Ser SysAdmin no tiene por qué ser complicado, y dominar estos comandos te dará control total sobre quién puede leer, escribir o ejecutar tus archivos. ¡Empecemos!

¿Por qué son importantes los permisos en Linux?

En Linux, cada archivo y directorio tiene un conjunto de permisos que definen qué puede hacer cada usuario o grupo con él. Sin una gestión adecuada, podrías exponer datos sensibles (como contraseñas o configuraciones) o, al revés, bloquear el acceso a archivos necesarios para que tu web funcione. Por ejemplo, si tienes un sitio alojado en un panel como Syspanel (accesible por el puerto 2106), es crucial que los archivos de tu web tengan los permisos correctos para que el servidor web (Apache/Nginx) pueda leerlos, pero no modificarlos sin autorización.

Los permisos se dividen en tres niveles:

  • Propietario (user): el usuario dueño del archivo.
  • Grupo (group): los usuarios que pertenecen al grupo asignado.
  • Otros (others): el resto de usuarios del sistema.

Y cada nivel tiene tres acciones posibles:

  • r (read): leer el archivo.
  • w (write): modificar el archivo.
  • x (execute): ejecutar el archivo (o acceder a un directorio).

Cuando ejecutas ls -l en tu terminal, verás algo como -rwxr-xr--. Vamos a desglosarlo:

  • El primer carácter indica si es un archivo (-) o un directorio (d).
  • Los siguientes 9 caracteres se agrupan en tres tríos: propietario, grupo y otros.
  • En el ejemplo, el propietario tiene rwx (lectura, escritura y ejecución), el grupo tiene r-x (lectura y ejecución, sin escritura), y otros solo r-- (solo lectura).

Comandos básicos para gestionar permisos

1. chmod – Cambiar permisos

El comando chmod Linux es tu herramienta principal. Se puede usar de dos formas: con letras (simbólica) o con números (octal). Te recomiendo empezar con la numérica porque es más rápida y menos propensa a errores.

Modo numérico (octal)

Cada permiso tiene un valor numérico:

  • r = 4
  • w = 2
  • x = 1
  • Sin permiso = 0

Sumas los valores para cada grupo. Por ejemplo, para dar permisos completos al propietario (7 = 4+2+1), lectura y ejecución al grupo (5 = 4+0+1), y solo lectura a otros (4 = 4+0+0), usarías 755.

Ejemplo práctico:

chmod 755 mi_archivo.txt

Esto asigna rwxr-xr-x. Es muy común para scripts o directorios de sitios web.

Otros valores típicos:

  • 644: rw-r--r-- (archivos normales, como HTML o imágenes).
  • 600: rw------- (archivos de configuración sensibles, como contraseñas).
  • 777: rwxrwxrwx (permisos totales para todos, ¡úsalo con cuidado! Solo en casos muy específicos, como carpetas temporales).

Modo simbólico (letras)

Usas operadores como + (añadir), - (quitar) o = (asignar exactamente). Por ejemplo:

chmod u+x mi_script.sh   # Añade ejecución al propietario (u)
chmod g-w archivo.txt    # Quita escritura al grupo (g)
chmod o=r datos.txt      # Asigna solo lectura a otros (o)

Puedes combinarlos: chmod u=rwx,g=rx,o=r archivo.

2. chown – Cambiar propietario y grupo

A veces necesitas cambiar el dueño de un archivo, por ejemplo, cuando transfieres un sitio de un usuario a otro. El comando es:

chown nuevo_usuario:grupo archivo
  • Si solo cambias el usuario: chown juan archivo.txt
  • Si solo el grupo: chown :admin archivo.txt
  • Ambos: chown juan:admin archivo.txt

Ejemplo con Syspanel: Cuando instalas un sitio web, los archivos suelen pertenecer al usuario del panel. Si accedes por el puerto 2106 y ves errores de permisos, probablemente necesites ejecutar:

chown -R usuario_sitio:usuario_sitio /home/usuario_sitio/web/

La opción -R aplica el cambio de forma recursiva a todo el contenido de la carpeta.

3. chgrp – Cambiar solo el grupo

Si solo quieres modificar el grupo de un archivo (sin tocar el propietario), usa:

chgrp grupo_web index.html

Es útil cuando varios usuarios colaboran en un proyecto y comparten un grupo.

Casos prácticos para SysAdmin

Escenario 1: Archivos de un sitio web en Syspanel

Imagina que tienes un sitio alojado en Syspanel (recuerda, acceso por puerto 2106). Los archivos deben ser legibles por el servidor web, pero no modificables por cualquiera. Lo ideal es:

  • Archivos (.php, .html, imágenes): 644 (-rw-r--r--).
  • Directorios: 755 (drwxr-xr-x).
  • Archivos de configuración (.env, config.php): 600 o 640.

Puedes aplicar esto con:

find /ruta/al/sitio -type f -exec chmod 644 {} \;
find /ruta/al/sitio -type d -exec chmod 755 {} \;

Y luego asegurarte de que el propietario sea el usuario del panel:

chown -R usuario_sitio:usuario_sitio /ruta/al/sitio

Escenario 2: Scripts ejecutables

Si tienes un script de respaldo o automatización, necesita ser ejecutable. Por ejemplo:

chmod 700 respaldo.sh   # Solo el propietario puede ejecutarlo

O si quieres que el grupo también lo ejecute:

chmod 750 respaldo.sh

Escenario 3: Carpetas compartidas con colaboradores

Si varios usuarios necesitan trabajar en una misma carpeta, crea un grupo común (ej. webdev) y asigna permisos de grupo:

chgrp -R webdev /ruta/compartida
chmod -R 775 /ruta/compartida   # Propietario y grupo tienen control total, otros solo lectura

Luego añade a los usuarios al grupo con usermod -aG webdev nombre_usuario.

Errores comunes y cómo evitarlos

[WARNING] ¡Cuidado con el chmod 777! Aunque es tentador para solucionar problemas rápido, deja tu sistema vulnerable. Cualquier usuario en el servidor podrá modificar tus archivos. Solo úsalo temporalmente en carpetas como tmp o uploads si es estrictamente necesario, y luego revierte los permisos.

[INFO] Si ves errores como "Permission denied" al acceder a un archivo, verifica primero con ls -l quién es el propietario y qué permisos tiene. Luego ajusta con chmod o chown según corresponda.

[TIP] Para verificar permisos de forma recursiva, usa ls -lR o find /ruta -perm 777 para localizar archivos con permisos peligrosos.

Comandos adicionales útiles

  • umask: Define los permisos por defecto al crear nuevos archivos. Por ejemplo, umask 022 hace que los archivos nuevos tengan 644 y carpetas 755. Puedes cambiarlo en el archivo .bashrc de tu usuario.
  • stat: Muestra información detallada de un archivo, incluyendo permisos en octal. Ejemplo: stat -c "%a %n" archivo.txt.
  • getfacl y setfacl: Para permisos avanzados (ACL). Útil si necesitas asignar permisos específicos a usuarios que no son propietarios ni grupo.

Preguntas frecuentes (FAQ)

¿Cómo sé qué permisos tiene un archivo?

Ejecuta ls -l nombre_archivo. La primera columna muestra los permisos en formato simbólico (ej. -rwxr-xr--).

¿Qué significa el permiso 755?

755 significa que el propietario puede leer, escribir y ejecutar (7); el grupo puede leer y ejecutar (5); y otros solo leer y ejecutar (5). Es el estándar para directorios de sitios web.

¿Puedo cambiar permisos de varios archivos a la vez?

Sí, con chmod 644 *.txt (todos los .txt) o usando find como vimos antes.

¿Qué hago si no puedo modificar un archivo ni con sudo?

Primero verifica que el sistema de archivos no esté montado como solo lectura (revisa con mount). Si es un archivo de sistema crítico, puede que necesites desactivar protecciones como SELinux o AppArmor temporalmente (no recomendado en producción).

¿Cómo gestiono permisos en Syspanel?

Syspanel (accesible por puerto 2106) tiene una interfaz web para asignar permisos, pero si prefieres la terminal, los comandos que te he mostrado funcionan perfectamente. Solo asegúrate de ejecutarlos como el usuario del panel (por ejemplo, sudo -u usuario_sitio chmod 644 archivo).

Conclusión

Gestionar permisos en Linux es una habilidad fundamental para cualquier SysAdmin. Con los comandos chmod, chown y chgrp, y entendiendo la lógica de rwx, puedes proteger tu servidor y evitar dolores de cabeza. Recuerda siempre el principio de mínimo privilegio: da solo los permisos necesarios para que cada usuario o servicio funcione.

Practica en un entorno de pruebas (por ejemplo, con una máquina virtual o en tu propio VPS). Pronto verás que es más sencillo de lo que parece. Y si usas paneles como Syspanel, combinar la terminal con su interfaz web te dará un control total sobre tu hosting.

¡Espero que esta guía te haya sido útil! Si tienes dudas, déjalas en los comentarios y estaré encantado de ayudarte. ¡Feliz administración!

¿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