Introducción
Uno de los problemas más comunes y frustrantes a los que se enfrentan tanto los administradores de sistemas como los usuarios novatos en distribuciones Linux es el temido mensaje Permission denied (Permiso denegado). Este error surge cuando intentas ejecutar un script, modificar un archivo del sistema o acceder a un directorio sin contar con los privilegios necesarios. Afortunadamente, Linux cuenta con un sistema de permisos muy robusto pero fácil de configurar si sabes qué herramientas utilizar.
Causas principales del error Permission Denied
El sistema operativo Linux protege sus directorios y archivos mediante un esquema de usuarios, grupos y permisos de lectura, escritura y ejecución. Las causas más frecuentes de este fallo son:
- Intentar ejecutar comandos administrativos sin privilegios de superusuario (root).
- Falta de permisos de ejecución (
+x) en scripts de Bash o archivos binarios. - Propietario incorrecto del archivo o directorio tras una transferencia o clonación.
- Restricciones severas impuestas por políticas de seguridad como SELinux o AppArmor.
Método 1: Utilizar sudo para elevar privilegios temporalmente
La causa número uno de este error es la falta de permisos de administrador. Si estás intentando instalar un paquete, modificar la configuración del sistema en /etc o acceder a carpetas protegidas, debes anteponer el comando sudo.
- Abre tu terminal.
- Identifica el comando que te devolvió el error, por ejemplo:
apt update. - Vuelve a ejecutarlo añadiendo sudo al principio:
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: Cambiar los permisos con chmod
Si el error ocurre al intentar ejecutar un script propio o un archivo descargado, es muy probable que carezca de los permisos de ejecución necesarios.
- Verifica los permisos actuales del archivo con el comando:
ls -l nombre_archivo. - Otorga permisos de ejecución al propietario ejecutando:
chmod u+x nombre_archivo. - Si necesitas que cualquier usuario del sistema pueda ejecutarlo, utiliza:
chmod +x nombre_archivo. - Vuelve a intentar la ejecución llamando al script:
./nombre_archivo.
Método 3: Modificar el propietario con chown
En ocasiones, creas o copias archivos utilizando el usuario root, pero intentas modificarlos desde tu usuario habitual, lo que genera un conflicto de propiedad.
- Comprueba quién es el propietario actual del archivo o carpeta:
ls -l. - Cambia el propietario asignándolo a tu usuario actual con el siguiente comando:
sudo chown -R $USER:$USER nombre_carpeta. - El parámetro
-Raplicará el cambio de forma recursiva a todos los archivos y subdirectorios contenidos.