15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
16.08.2025

Cómo Verificar Permisos de Archivos en Linux: Una Guía Completa

Linux alimenta la mayoría de los servidores del mundo — desde entornos de VPS Hosting hasta Servidores Dedicados de nivel empresarial — y por una buena razón. Es rápido, estable y construido con seguridad en su núcleo. Uno de los pilares más fundamentales de esa seguridad es el sistema de permisos de archivos: un mecanismo preciso y elegante que controla exactamente quién puede leer, modificar o ejecutar cualquier archivo o directorio en el sistema.

Ya seas un desarrollador implementando una aplicación web, un administrador de sistemas endureciendo un servidor, o un principiante aprendiendo la línea de comandos, entender cómo verificar e interpretar permisos de archivos en Linux es una habilidad innegociable. Esta guía cubre todo lo que necesitas saber — desde los conceptos básicos del modelo de permisos hasta bits especiales avanzados — con comandos prácticos y ejemplos del mundo real.

¿Qué son los permisos de archivos de Linux?

Cada archivo y directorio en Linux tiene un conjunto de permisos adjuntos. Estos permisos definen qué acciones están permitidas y por quién. Hay tres tipos de permisos principales:

PermisoSímboloQué hace en un archivoQué hace en un directorio
LecturarVer el contenido del archivoListar los nombres de archivos dentro
EscriturawModificar o eliminar el archivoCrear o eliminar archivos dentro
EjecuciónxEjecutar el archivo como un programaEntrar (navegar dentro) en el directorio

Estos tres permisos se aplican independientemente a tres categorías de usuarios distintas:

  • Propietario (usuario) — El usuario que posee el archivo, típicamente su creador.
  • Grupo — Cualquier usuario que pertenezca al grupo asignado del archivo.
  • Otros — Todos los demás en el sistema.

Esta matriz de permisos de tres por tres le da a los administradores de Linux un control granular y poderoso sobre el acceso a cada recurso en el sistema.

Cómo verificar permisos de archivos: El comando ls -l

El método más rápido y comúnmente utilizado para verificar permisos de archivos es el comando ls -l (formato de listado largo).

ls -l file.txt

Ejemplo de salida:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Desglosemos cada componente de esta salida:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Entonces -rw-r--r-- nos dice:

  • Propietario (alice): Lectura + Escritura (rw-)
  • Grupo (developers): Solo lectura (r--)
  • Otros: Solo lectura (r--)

Verificar permisos para múltiples archivos

Para ver permisos de todos los archivos en un directorio a la vez:

ls -la /var/www/html

La bandera -a incluye archivos ocultos (aquellos que comienzan con un punto). Esto es especialmente útil al auditar directorios de servidores web en un entorno de Alojamiento Web Compartido o VPS.

Obtener información detallada de permisos con stat

Para un desglose más exhaustivo — incluyendo representaciones tanto simbólicas como numéricas — usa el comando stat:

stat file.txt

Ejemplo de salida:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

La línea clave es:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Esto te proporciona:

  • Notación numérica (octal): 0644
  • Notación simbólica: -rw-r--r--
  • ID de usuario (UID) e ID de grupo (GID) con sus nombres legibles por humanos

El comando stat es invaluable cuando se solucionan errores de permisos en servidores de producción, ya que proporciona todo el contexto que necesitas en una sola salida.

Entender la notación numérica (octal) de permisos

Los permisos de Linux se pueden expresar como números, que es el formato utilizado por comandos como chmod. A cada tipo de permiso se le asigna un valor:

PermisoValor numérico
Lectura (r)4
Escritura (w)2
Ejecución (x)1
Sin permiso (-)0

Calculas el valor de permiso para cada categoría de usuario sumando los valores juntos:

CombinaciónCálculoValor numérico
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Un número octal de tres dígitos representa el conjunto completo de permisos:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Verificar permisos en directorios

Los directorios utilizan el mismo modelo de permisos, pero el significado de cada bit es ligeramente diferente. Usa ls -ld (nota la bandera -d) para inspeccionar un directorio en sí en lugar de su contenido:

ls -ld myfolder

Ejemplo de salida:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

El d inicial confirma que esto es un directorio. Los permisos se desglosan como:

  • Propietario (alice): rwx — Puede listar, crear/eliminar archivos y entrar en el directorio
  • Grupo (developers): r-x — Puede listar archivos y entrar, pero no puede crear o eliminar
  • Otros: --- — Sin acceso en absoluto

> Importante: El bit de ejecución (x) en un directorio significa la capacidad de entrar en él (es decir, usar cd). Sin x, un usuario no puede navegar en el directorio incluso si tiene permiso de lectura. Esta es una fuente común de confusión para los principiantes.

Bits de permiso especiales: setuid, setgid y sticky bit

Más allá de los nueve bits de permiso estándar, Linux admite tres bits de permiso especiales que proporcionan control de acceso avanzado:

1. setuid (s en el bit de ejecución del propietario)

Cuando se establece en un archivo ejecutable, el programa se ejecuta con los privilegios del propietario del archivo en lugar de los del usuario que lo llama. Así es como comandos como passwd permiten a usuarios regulares modificar /etc/shadow (que es propiedad de root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

El s en la posición de ejecución del propietario indica setuid.

2. setgid (s en el bit de ejecución del grupo)

En un archivo, el programa se ejecuta con los privilegios del grupo. En un directorio, los archivos nuevos creados dentro heredan automáticamente el grupo del directorio — útil para carpetas de proyectos compartidos.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t en el bit de ejecución de otros)

Cuando se establece en un directorio, solo el propietario del archivo (o root) puede eliminar o renombrar archivos dentro de él, incluso si otros tienen permiso de escritura. Esta es la configuración estándar para /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

El t al final señala que el sticky bit está activo.

Representación numérica de bits especiales:

Bit especialValor numérico
setuid4000
setgid2000
Sticky bit1000

Entonces drwxrwxrwt = 1777 (1000 + 777).

Tabla de referencia de permisos completa

SimbólicoNuméricoSignificado en un archivoSignificado en un directorio
---0Sin accesoSin acceso
--x1Solo ejecuciónSolo entrar
-w-2Solo escrituraModificar contenidos (con x)
-wx3Escritura + EjecuciónEntrar y modificar
r--4Solo lecturaListar nombres (requiere x para ser útil)
r-x5Lectura + EjecuciónListar y entrar
rw-6Lectura + EscrituraListar y modificar (sin entrar)
rwx7Acceso completoControl total

Ejemplos de permisos del mundo real

Aquí están los patrones de permisos más comunes que encontrarás en la práctica:

-rw-r--r-- (0644) — Archivo estándar

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

El propietario puede leer y escribir. El grupo y otros solo pueden leer. Típico para archivos de configuración y contenido web.

-rwxr-xr-x (0755) — Script ejecutable o binario

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

El propietario tiene acceso completo. Todos los demás pueden leer y ejecutar pero no pueden modificar. Estándar para scripts de shell, binarios de servidores web y ejecutables públicos.

-rw------- (0600) — Archivo privado

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Solo el propietario puede leer o escribir. Sin acceso para nadie más. Requerido para claves privadas SSH — SSH se negará a usar un archivo de clave con permisos más amplios.

drwxr-xr-x (0755) — Directorio público estándar

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Común para directorios raíz web. El propietario tiene control total; otros pueden examinar y entrar.

drwx------ (0700) — Directorio privado

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Completamente privado. Solo el propietario puede acceder. Requerido para el directorio ~/.ssh.

drwxrwxrwt (1777) — Escribible por todos con sticky bit

drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

Todos pueden crear archivos, pero solo el propietario de cada archivo puede eliminar sus propios archivos.

Consejos prácticos para entornos de servidor

Si administras un servidor Linux — ya sea un VPS ejecutando una aplicación web, un servidor de correo asegurado con un Certificado SSL, o una máquina alojando múltiples dominios registrados a través de Registro de Dominios — aquí hay algunas mejores prácticas esenciales de permisos:

  1. Nunca establezca 777 en archivos o directorios a menos que tengas una razón muy específica y temporal. Los archivos escribibles por todos son un riesgo de seguridad importante.
  2. Los archivos del servidor web (por ejemplo, bajo /var/www/) típicamente deberían ser 644 para archivos y 755 para directorios, propiedad de tu usuario de aplicación.
  3. Las claves SSH deben ser 600 para claves privadas y 644 para claves públicas. SSH lo aplica estrictamente.
  4. Los archivos de configuración que contienen contraseñas o claves API deben ser 600 o 640 como máximo.
  5. Usa find para auditar permisos en un árbol de directorios:

###

15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar