Introducción
Uno de los errores más comunes y frustrantes a los que se enfrentan los usuarios y administradores de sistemas en distribuciones Linux es el mensaje Permission denied (Permiso denegado). Este aviso de la terminal indica que tu usuario actual no cuenta con los privilegios necesarios para leer, escribir o ejecutar un archivo, directorio o script específico.
Afortunadamente, este problema tiene solución. En este artículo te explicaremos por qué ocurre y te mostraremos los métodos más efectivos para solucionarlo de forma definitiva.
Causas del error 'Permission Denied' en Linux
El sistema de seguridad de Linux se basa estrictamente en permisos de usuario, grupo y otros (ugo), además de permisos de lectura (r), escritura (w) y ejecución (x). Las causas más frecuentes de este error son:
- Intentar modificar o ejecutar un archivo del sistema sin privilegios de administrador (root).
- Falta de permisos de ejecución en un script propio (archivos .sh).
- Propietario incorrecto de un directorio compartido o de una aplicación web.
Método 1: Usar sudo para obtener privilegios de administrador
Si estás intentando instalar un paquete, modificar archivos en directorios protegidos como /etc o reiniciar un servicio del sistema, necesitarás elevar tus privilegios temporales.
- Identifica el comando que te devolvió el error. Por ejemplo:
apt update. - Vuelve a escribir el comando anteponiendo
sudo:sudo apt update. - Introduce la contraseña de tu usuario (nota que no se mostrarán asteriscos mientras escribes) y presiona Enter.
Método 2: Otorgar permisos de ejecución a un script con chmod
Si el error ocurre al intentar ejecutar un archivo de script propio (por ejemplo, script.sh), lo más probable es que carezca de los permisos de ejecución necesarios.
- Verifica los permisos actuales del archivo ejecutando:
ls -l script.sh. - Concede permisos de ejecución al propietario con el siguiente comando:
chmod +x script.sh. - Si necesitas que cualquier usuario pueda ejecutarlo, utiliza:
chmod 755 script.sh. - Vuelve a ejecutar tu script normalmente.
Método 3: Cambiar el propietario del archivo o directorio con chown
A veces, los archivos son creados por el usuario root (por ejemplo, mediante descargas con wget o curl en carpetas protegidas), impidiendo que tu usuario normal los modifique.
- Comprueba quién es el propietario actual mediante:
ls -l nombre_archivo. - Cambia el propietario del archivo a tu usuario actual utilizando el comando chown:
sudo chown $USER:$USER nombre_archivo. - Si se trata de una carpeta completa y su contenido, aplica el cambio de forma recursiva:
sudo chown -R $USER:$USER nombre_carpeta/.