Introducción
Uno de los problemas más comunes a los que se enfrentan tanto los usuarios principiantes como los administradores de sistemas en entornos Linux es el temido mensaje bash: Permission denied. Este error ocurre cuando intentas ejecutar un script, modificar un archivo o acceder a un directorio para el cual tu usuario actual no cuenta con los privilegios necesarios de lectura, escritura o ejecución.
Causas principales del error Permission Denied
El sistema de permisos de Linux es extremadamente estricto por razones de seguridad. Las causas más frecuentes de este fallo son:
- El archivo o script no tiene permisos de ejecución habilitados.
- Estás intentando modificar un archivo del sistema que requiere privilegios de superusuario (root).
- El propietario del archivo pertenece a otro usuario y tu cuenta no forma parte del grupo autorizado.
Método 1: Otorgar permisos de ejecución con chmod
Si estás intentando ejecutar un script (por ejemplo, un archivo .sh) y la terminal te devuelve un error de permisos, lo más probable es que necesites añadir el permiso de ejecución.
- Abre tu terminal de Linux.
- Navega hasta la carpeta donde se encuentra el archivo usando el comando
cd /ruta/de/tu/carpeta. - Ejecuta el siguiente comando para otorgar permisos de ejecución a todos los usuarios:
chmod +x nombre_del_archivo.sh - Si prefieres una configuración más segura donde solo el propietario pueda ejecutarlo, utiliza:
chmod 755 nombre_del_archivo.sh - Vuelve a intentar ejecutar el archivo escribiendo
./nombre_del_archivo.sh.
Método 2: Usar sudo para tareas administrativas
Cuando necesitas editar archivos de configuración del sistema (como /etc/hosts o archivos dentro de /var/www/), tu usuario estándar no tendrá autorización directa.
- Identifica el comando que estás intentando ejecutar.
- Antepon la palabra
sudoal inicio del comando para adquirir temporalmente privilegios de administrador. Ejemplo:sudo nano /etc/hosts - Introduce la contraseña de tu usuario (nota que no se mostrarán asteriscos mientras escribes por seguridad) y presiona Enter.
Método 3: Cambiar el propietario del archivo con chown
Si un archivo fue creado por el usuario root u otro proceso y necesitas que pertenezca a tu usuario actual para gestionarlo sin restricciones, debes cambiar su propiedad.
- Verifica quién es el propietario actual ejecutando:
ls -l nombre_del_archivo - Cambia el propietario del archivo ejecutando el siguiente comando:
sudo chown $USER:$USER nombre_del_archivo - Comprueba que el problema se haya resuelto intentando acceder o modificar el archivo nuevamente.