Lingua-e
Python

¿Qué significa PermissionError?

← Errores

PermissionError se lanza al intentar realizar una operación de archivo o directorio sin los permisos requeridos. Es una subclase de OSError con errno configurado a EACCES o EPERM. Esto ocurre típicamente cuando un proceso sin privilegios intenta acceder a archivos del sistema restringidos.

Por qué ocurre

  • Escribir en un archivo propiedad de otro usuario o root sin permiso de escritura.
  • Leer un archivo con modo 000 o acceso restringido.
  • Intentar enlazarse a un puerto privilegiado (por debajo de 1024) sin derechos elevados.
  • Eliminar un archivo en un directorio donde el usuario actual no tiene permiso de escritura.

Ejemplos

Python

Código que causa el error

with open("/etc/passwd", "w") as f:
    f.write("hacked")

Error en la terminal

PermissionError: [Errno 13] Permission denied: '/etc/passwd'

Cómo solucionarlo

Verifica los permisos del archivo con ls -l o Path.stat() antes de operar. Ejecuta el proceso con los privilegios apropiados si es realmente necesario. Prefiere escribir en directorios propiedad del usuario, como el directorio home o una carpeta temporal.

Código corregido

import os
from pathlib import Path

target = Path("output.txt")
try:
    target.write_text("data")
except PermissionError as e:
    print(f"Cannot write: {e}")

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis