Introducción al error Permission Denied en Linux
Uno de los problemas más comunes a los que se enfrentan los usuarios y administradores de sistemas en distribuciones basadas en Linux (como Ubuntu, Debian o CentOS) es el frustrante mensaje Permission denied. Este error ocurre cuando un usuario intenta acceder, modificar o ejecutar un archivo o directorio para el cual no cuenta con los privilegios necesarios según el sistema de seguridad de archivos de Linux.
Causas principales del error de permisos
El sistema operativo Linux maneja un esquema estricto de permisos basado en tres tipos de entidades: Propietario (User), Grupo (Group) y Otros (Others), combinados con las acciones de Leer (r), Escribir (w) y Ejecutar (x). Las causas más habituales son:
- Intentar ejecutar un script o comando sin privilegios de superusuario (root).
- Falta de permisos de ejecución en un archivo de script (.sh).
- El propietario actual del archivo o directorio pertenece a otro usuario y tu cuenta actual no tiene acceso de lectura o escritura.
Método 1: Usar sudo para obtener privilegios temporales de administrador
Si estás intentando instalar un paquete, modificar un archivo de configuración del sistema o acceder a una ruta protegida, la causa suele ser la falta de privilegios elevados.
- Identifica el comando que te devolvió el error. Por ejemplo:
apt update. - Vuelve a escribir el comando anteponiendo la palabra
sudo:sudo apt update. - Introduce la contraseña de tu usuario (nota que no se mostrarán asteriscos mientras escribes por seguridad) y presiona Enter.
Método 2: Conceder permisos de ejecución con chmod
Si el error ocurre al intentar ejecutar un script propio (por ejemplo, script.sh), es muy probable que el archivo carezca del permiso de ejecución.
- Abre tu terminal y verifica los permisos actuales ejecutando:
ls -l script.sh. - otorga permisos de ejecución a todos los usuarios con el comando:
chmod +x script.sh. - Alternativamente, si necesitas un control más estricto, usa la notación numérica, por ejemplo:
chmod 755 script.sh. - Vuelve a ejecutar tu archivo de forma normal.
Método 3: Cambiar el propietario del archivo o directorio con chown
En ocasiones, un archivo fue creado por el usuario root u otro usuario del sistema, impidiendo que tu usuario actual pueda editarlo.
- Comprueba quién es el propietario actual mediante:
ls -l nombre_archivo. - Cambia el propietario del archivo asignándoselo a tu usuario actual utilizando el comando:
sudo chown $USER:$USER nombre_archivo. - Si necesitas aplicar el cambio de manera recursiva a una carpeta entera y su contenido, añade la bandera -R:
sudo chown -R $USER:$USER nombre_directorio/.