Introducción
Uno de los problemas más comunes al trabajar en la terminal de sistemas operativos basados en Linux, como Ubuntu o Debian, es encontrarse con el frustrante mensaje Permission denied al intentar ejecutar un archivo de script recién creado o descargado. Este error interrumpe los flujos de trabajo de automatización y administración de servidores.
Causas del Error Permission Denied en Linux
Por motivos de seguridad predeterminados, Linux no otorga permisos de ejecución a los archivos nuevos que se crean en el sistema. Aunque tengas una cuenta con privilegios elevados o seas el propietario del archivo, el sistema operativo requiere que se active explícitamente el bit de ejecución (execute bit) mediante los permisos del sistema de archivos POSIX.
Método 1: Otorgar Permisos de Ejecución con Chmod
La forma más rápida y recomendada de solucionar este inconveniente es modificar los permisos del archivo utilizando el comando chmod.
- Abre tu terminal de Linux y navega hasta el directorio donde se encuentra tu script.
- Ejecuta el siguiente comando para otorgar permisos de ejecución a todos los usuarios:
chmod +x nombre_del_script.sh - Si prefieres un enfoque más restrictivo donde solo el propietario pueda ejecutarlo, utiliza la sintaxis numérica:
chmod 700 nombre_del_script.sh - Vuelve a intentar ejecutar tu script anteponiendo la ruta local:
./nombre_del_script.sh
Método 2: Cambiar la Propiedad del Archivo con Chown
Si el comando anterior no funciona o recibes errores persistentes, es probable que no seas el propietario legítimo del archivo, lo que impide modificar sus permisos.
- Verifica quién es el propietario actual del script ejecutando:
ls -l nombre_del_script.sh - Cambia la propiedad del archivo a tu usuario actual utilizando el comando
chowncon privilegios de superusuario:sudo chown $USER:$USER nombre_del_script.sh - Introduce tu contraseña de administrador cuando se te solicite.
- Vuelve a aplicar los permisos de ejecución con
chmod +x nombre_del_script.shy ejecuta tu script con normalidad.