Introducción
Uno de los problemas más comunes a los que se enfrentan los usuarios y administradores de sistemas en distribuciones basadas en Linux como Ubuntu, Debian o CentOS es el temido mensaje Permission Denied (Permiso denegado). Este error surge cuando intentas leer, escribir o ejecutar un archivo o directorio para el cual tu usuario actual no cuenta con los privilegios necesarios en el sistema operativo.
Causas principales del error Permission Denied
Las razones más habituales por las cuales Linux bloquea una acción son:
- El archivo o directorio pertenece a otro usuario (generalmente
root) y tu usuario actual no tiene permisos de lectura, escritura o ejecución. - Intentas ejecutar un script o binario que no tiene los bits de ejecución activos.
- Estás intentando realizar una tarea de administración del sistema sin privilegios de superusuario.
Método 1: Usar sudo para elevar privilegios temporalmente
Si el comando que estás intentando ejecutar requiere permisos de administrador (por ejemplo, instalar un paquete o modificar archivos del sistema), debes anteponer sudo.
- Abre tu terminal.
- Vuelve a escribir el comando añadiendo
sudoal principio, por ejemplo:sudo apt update. - Introduce la contraseña de tu usuario (nota que no se mostrarán asteriscos mientras escribes) y presiona Enter.
Método 2: Cambiar los permisos con chmod
Si el error ocurre al intentar ejecutar un script propio o un archivo ejecutable, necesitas otorgarle permisos de ejecución utilizando el comando chmod.
- 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 específicos, puedes usar la notación octal, por ejemplo:
chmod 755 nombre_archivo.
Método 3: Cambiar el propietario con chown
A veces, un archivo ha sido creado por el usuario root y necesitas que pertenezca a tu usuario actual para poder modificarlo sin restricciones.
- Comprueba quién es el propietario actual mediante:
ls -l nombre_archivo. - Cambia el propietario del archivo ejecutando:
sudo chown tu_usuario:tu_usuario nombre_archivo. - Si necesitas cambiar recursivamente una carpeta completa y su contenido, utiliza la bandera
-R:sudo chown -R tu_usuario:tu_usuario nombre_carpeta.