Introducción
Uno de los problemas más comunes a los que se enfrentan tanto los usuarios novatos como los administradores de sistemas en entornos Linux es el temido mensaje Permission denied (Permiso denegado). Este error surge cuando intentamos leer, modificar o ejecutar un archivo o directorio para el cual nuestro usuario actual no cuenta con los privilegios necesarios en el sistema de archivos.
Causas del Error Permission Denied
Las razones principales por las que aparece este fallo en la terminal de Linux son:
- Falta de permisos de ejecución (
x), lectura (r) o escritura (w) en el archivo. - El archivo o directorio pertenece al usuario
rooty estamos intentando acceder con un usuario estándar. - Restricciones de seguridad a nivel de directorio padre que bloquean el acceso en cascada.
Método 1: Usar Sudo para privilegios de Administrador
Si necesitas ejecutar un comando o script que requiere privilegios elevados, la solución más directa es anteponer sudo (SuperUser DO). Sigue estos pasos:
- Abre tu terminal.
- Ejecuta el comando fallido anteponiendo sudo, por ejemplo:
sudo apt updateosudo ./mi_script.sh. - Introduce la contraseña de tu usuario (nota que no se mostrarán asteriscos mientras escribes por seguridad) y presiona Enter.
Método 2: Cambiar los Permisos con Chmod
Si el archivo es tuyo pero no se puede ejecutar, necesitas otorgarle permisos de ejecución utilizando el comando chmod. Sigue estos pasos:
- Verifica los permisos actuales del archivo con:
ls -l nombre_archivo. - otorga permisos de ejecución a todos los usuarios ejecutando:
chmod +x nombre_archivo. - Si necesitas permisos completos para el propietario, puedes usar:
chmod 755 nombre_archivo. - Vuelve a intentar ejecutar tu archivo o script.
Método 3: Cambiar el Propietario con Chown
A veces el archivo pertenece a otro usuario (como root) y necesitas transferir la propiedad a tu usuario actual. Sigue estos pasos:
- Identifica tu usuario actual escribiendo en la terminal:
whoami. - Cambia el propietario del archivo ejecutando:
sudo chown tu_usuario:tu_usuario nombre_archivo. - Verifica que el cambio se haya aplicado correctamente volviendo a listar los archivos con
ls -l.