Introducción al Error de Permisos Denegados en macOS
Uno de los problemas más frustrantes para los usuarios que utilizan la Terminal en macOS es encontrarse con el mensaje zsh: permission denied o simplemente Permission denied. Este error ocurre cuando intentas ejecutar un script, instalar una herramienta o modificar un archivo del sistema para el cual tu usuario actual no cuenta con los privilegios necesarios de lectura, escritura o ejecución.
Causas Principales del Error Permission Denied
Las razones más comunes por las que macOS bloquea la ejecución de comandos en la Terminal incluyen:
- Falta de privilegios de administrador (superusuario) en la sesión actual.
- El archivo o script carece de los permisos de ejecución (bit +x) necesarios.
- Restricciones de seguridad integradas en macOS como SIP (System Integrity Protection).
- Rutas de directorios protegidas por el sistema operativo.
Método 1: Utilizar el comando sudo para elevación de privilegios
La forma más rápida de solucionar este problema cuando necesitas ejecutar un comando administrativo es anteponer la orden sudo (SuperUser DO).
- Abre la aplicación Terminal desde la carpeta de Aplicaciones o usando Spotlight (Cmd + Espacio).
- Escribe tu comando añadiendo
sudoal principio. Por ejemplo:sudo apt updateo el comando que necesites. - Pulsa Enter.
- El sistema te pedirá tu contraseña de administrador. Nota: mientras escribes la contraseña no aparecerán asteriscos ni ningún carácter en pantalla por seguridad, es totalmente normal.
- Pulsa Enter nuevamente para ejecutar la acción con permisos elevados.
Método 2: Conceder permisos de ejecución al archivo o script
Si el error ocurre al intentar ejecutar un archivo de script propio (por ejemplo, un archivo .sh), significa que el sistema no le permite ejecutarse por motivos de seguridad.
- Abre la Terminal.
- Navega hasta la carpeta donde se encuentra el archivo usando el comando
cd, por ejemplo:cd ~/Downloads - Otorga permisos de ejecución al archivo escribiendo el comando
chmodseguido de+xy el nombre del archivo:code chmod +x nombre-del-script.sh - Ejecuta el script de manera segura añadiendo un punto y una barra antes del nombre:
code ./nombre-del-script.sh
Método 3: Corregir permisos en carpetas de usuario (Chown)
A veces, tras restaurar copias de seguridad o instalar paquetes manualmente, el propietario de los archivos cambia incorrectamente, generando denegaciones de acceso.
- Abre la Terminal en tu Mac.
- Introduce el siguiente comando para devolver la propiedad de tu carpeta de usuario a tu cuenta actual:
code sudo chown -R $(whoami) ~/.npm(reemplaza ~/.npm por la ruta que te esté dando problemas). - Introduce tu contraseña de administrador para confirmar el cambio.