Introducción
Uno de los obstáculos más frustrantes al administrar sistemas operativos basados en Linux es encontrarse con el temido mensaje Permission denied (Permiso denegado) al intentar ejecutar un script, modificar un archivo del sistema o acceder a un directorio. Este error de seguridad es en realidad una medida de protección nativa, pero puede detener tu flujo de trabajo si no sabes cómo gestionarlo.
Causas comunes del error Permission Denied
El mensaje de acceso denegado suele aparecer por tres razones principales:
- El usuario actual no tiene privilegios de lectura, escritura o ejecución sobre el archivo o directorio.
- El archivo pertenece al usuario
rooty estás intentando modificarlo con un usuario estándar. - El script o binario carece de los permisos de ejecución necesarios en su máscara de bits.
Método 1: Usar Sudo para elevar privilegios temporalmente
Si necesitas realizar una tarea administrativa y tu usuario cuenta con privilegios de superusuario, la solución más rápida es anteponer el comando sudo.
- Abre tu terminal de Linux.
- Identifica el comando que te devolvió el error, por ejemplo:
apt updateocat /etc/shadow. - Vuelve a ejecutarlo añadiendo sudo al inicio:
sudo apt update. - Introduce la contraseña de tu usuario (al escribirla no se mostrarán asteriscos por seguridad) y presiona Enter.
Método 2: Cambiar los permisos con Chmod
Si el problema es que un archivo o script no se puede ejecutar o editar, debes modificar sus permisos utilizando el comando chmod.
- Verifica los permisos actuales del archivo con:
ls -l nombre_archivo. - Si necesitas dar permisos de ejecución a todos los usuarios, ejecuta:
chmod +x nombre_archivo. - Si requieres permisos avanzados (por ejemplo, lectura y escritura para el dueño, y sólo lectura para los demás), usa la notación numérica:
chmod 644 nombre_archivo.
Método 3: Modificar el propietario con Chown
A veces los archivos fueron creados por el usuario root y necesitas que pertenezcan a tu usuario actual para poder gestionarlos sin restricciones.
- Comprueba el propietario actual mediante:
ls -l. - Cambia el propietario del archivo ejecutando:
sudo chown tu_usuario:tu_usuario nombre_archivo. - Si necesitas aplicar el cambio de forma recursiva a una carpeta entera y su contenido, añade la bandera -R:
sudo chown -R tu_usuario:tu_usuario nombre_carpeta.