certmundo.
es‑mx

6 min de lectura

¿Cómo funcionan los permisos de archivos en Linux?

Los permisos de archivos en Linux controlan quién puede leer, escribir o ejecutar cada archivo del sistema.

Cada archivo y carpeta en Linux tiene reglas que definen qué usuarios pueden hacer con ellos. Estas reglas se llaman permisos. Sin entenderlos, no podrás proteger tus datos ni ejecutar scripts correctamente.

La estructura de los permisos

Cada archivo tiene tres grupos de permisos:

  • Usuario (u): el dueño del archivo.
  • Grupo (g): un conjunto de usuarios con acceso compartido.
  • Otros (o): todos los demás usuarios del sistema.

Cada grupo puede tener tres tipos de permiso:

Símbolo Nombre Significado
r read Puede leer el archivo o listar el directorio
w write Puede modificar o eliminar el archivo
x execute Puede ejecutar el archivo o entrar al directorio
- sin permiso La acción está prohibida

Cómo leer la notación de permisos

Cuando ejecutas ls -l, Linux muestra una cadena de 10 caracteres al inicio de cada línea. Por ejemplo:

-rwxr-xr--

Esta cadena se divide así:

- | rwx | r-x | r--
↑    ↑     ↑     ↑
│    │     │     └── Otros: solo lectura
│    │     └──────── Grupo: lectura y ejecución
│    └────────────── Usuario: lectura, escritura y ejecución
└─────────────────── Tipo: "-" = archivo, "d" = directorio

El primer carácter indica el tipo de objeto:

  • - significa archivo regular.
  • d significa directorio.
  • l significa enlace simbólico.

Ejemplo real con ls -l

Supón que trabajas en el área de TI de una empresa como Liverpool y tienes estos archivos:

ls -l /home/usuario/reportes/

Salida:

-rw-r--r-- 1 ana contabilidad  4096 jun 10 09:00 ventas_junio.csv
-rwxr-x--- 1 ana ti            2048 jun 10 10:00 respaldo.sh
drwxr-xr-x 2 ana contabilidad  4096 jun 10 08:00 historico

Interpretación:

  • ventas_junio.csv: La dueña ana puede leer y escribir. El grupo contabilidad y los demás solo pueden leer.
  • respaldo.sh: La dueña ana puede leer, escribir y ejecutar. El grupo ti puede leer y ejecutar. Los demás no tienen ningún acceso.
  • historico: Es un directorio. Todos pueden leer y entrar, pero solo ana puede modificar su contenido.

La notación octal

Linux también representa los permisos con números. Este sistema se llama notación octal.

Cada permiso tiene un valor:

Permiso Valor
r 4
w 2
x 1
- 0

Sumas los valores de cada grupo para obtener un número del 0 al 7:

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

Entonces, el permiso -rwxr-xr-- equivale a 754 en notación octal.

Cómo cambiar permisos con chmod

chmod (change mode) es el comando para modificar permisos. Puedes usarlo de dos formas.

Forma simbólica

chmod [quién][operador][permiso] archivo
  • Quién: u (usuario), g (grupo), o (otros), a (todos).
  • Operador: + agrega, - quita, = establece exactamente.
  • Permiso: r, w, x.

Ejemplo 1: Dar permiso de ejecución al dueño de un script:

chmod u+x respaldo.sh

Ejemplo 2: Quitar permiso de escritura al grupo y a otros:

chmod go-w ventas_junio.csv

Ejemplo 3: Dar a todos solo permiso de lectura:

chmod a=r reporte_bimbo.txt

Forma octal

chmod [número] archivo

Ejemplo 4: Establecer permisos rwxr-xr-- (754) en un script:

chmod 754 respaldo.sh

Ejemplo 5: Dar permisos completos al dueño y ninguno a los demás (700):

chmod 700 contrasenas.txt

Este último ejemplo es útil cuando guardas información confidencial, como credenciales de acceso a sistemas de FEMSA.

Aplicar chmod a directorios y su contenido

Para cambiar permisos de toda una carpeta y su contenido, agrega -R:

chmod -R 755 /home/usuario/proyectos/

Cómo cambiar el dueño con chown

chown (change owner) cambia el usuario y el grupo propietario de un archivo.

chown [usuario]:[grupo] archivo

Ejemplo 1: Cambiar el dueño de un archivo al usuario carlos:

chown carlos ventas_junio.csv

Ejemplo 2: Cambiar el dueño y el grupo al mismo tiempo:

chown carlos:contabilidad ventas_junio.csv

Ejemplo 3: Aplicar el cambio de forma recursiva a una carpeta completa:

chown -R ana:ti /home/usuario/reportes/

Nota: para ejecutar chown necesitas permisos de administrador. Antepón sudo al comando si el sistema lo requiere.

sudo chown carlos:contabilidad ventas_junio.csv

Tabla de permisos más comunes

Octal Simbólico Uso típico
777 rwxrwxrwx Peligroso: acceso total para todos
755 rwxr-xr-x Scripts y programas ejecutables
644 rw-r--r-- Archivos de texto y configuración
700 rwx------ Archivos privados del dueño
600 rw------- Archivos confidenciales (contraseñas, llaves SSH)
000 ---------- Sin acceso para nadie (ni el dueño)

Errores comunes

Error 1: Usar 777 pensando que es "la solución fácil"

Dar permisos 777 a un archivo lo hace accesible y modificable por cualquier usuario del sistema. Esto es un riesgo grave de seguridad. Nunca uses 777 en archivos con datos confidenciales o scripts del sistema.

Error 2: Olvidar el permiso x en directorios

Para entrar a un directorio necesitas el permiso de ejecución (x), no solo el de lectura. Si un directorio tiene permisos r--, puedes ver que existe, pero no puedes acceder a su contenido con cd. El permiso mínimo para navegar un directorio es r-x (5 en octal).

Error 3: Cambiar el dueño sin sudo

Cambiar el propietario de un archivo es una operación privilegiada. Si ejecutas chown sin sudo en un archivo que no te pertenece, Linux devolverá un error de "Operación no permitida". Asegúrate de tener los permisos necesarios antes de intentarlo.

Error 4: Confundir permisos de archivo con permisos de directorio

Los permisos de un directorio afectan la capacidad de listar y entrar a él. Los permisos del archivo afectan la capacidad de leerlo o modificarlo. Puedes tener un archivo con rw- dentro de un directorio con --x: podrías entrar al directorio, pero no verías el archivo con ls.

Verificar permisos actuales

Antes de modificar permisos, siempre verifica el estado actual:

ls -l nombre_del_archivo

Para un directorio completo:

ls -la /home/usuario/reportes/

La opción -a muestra también los archivos ocultos (los que empiezan con punto).

Resumen de comandos clave

Comando Función
ls -l Ver permisos de archivos
chmod u+x archivo Dar ejecución al dueño
chmod 644 archivo Establecer permisos con notación octal
chmod -R 755 carpeta/ Aplicar permisos de forma recursiva
chown usuario:grupo archivo Cambiar dueño y grupo
sudo chown ... Cambiar dueño con privilegios de administrador

Puntos clave

  • Los permisos de Linux se dividen en tres grupos: usuario (dueño), grupo y otros. Cada grupo puede tener permiso de lectura (r), escritura (w) y ejecución (x).
  • El comando `ls -l` muestra los permisos de cada archivo como una cadena de 10 caracteres. El primer carácter indica si es archivo, directorio o enlace.
  • `chmod` cambia los permisos usando notación simbólica (como `u+x`) o notación octal (como `755`). Agrega `-R` para aplicar cambios de forma recursiva a carpetas.
  • `chown` cambia el usuario y grupo propietario de un archivo. Casi siempre necesitarás `sudo` para ejecutarlo correctamente.
  • Nunca uses permisos `777` en archivos de producción o datos confidenciales. El permiso más seguro para archivos privados es `600` o `700`.

Comparte esta lección: