Introducción al error Permission Denied en Linux
Uno de los problemas más frecuentes a los que se enfrentan tanto administradores de sistemas como usuarios de Linux en la terminal es el temido mensaje Permission denied. Este error ocurre cuando intentas leer, escribir, modificar o ejecutar un archivo o directorio para el cual tu usuario actual no cuenta con los privilegios necesarios en el sistema de archivos.
Causas principales del error de permisos
El núcleo de Linux maneja estrictamente la seguridad mediante permisos de usuario, grupo y otros (ugo), además de los permisos de superusuario (root). Las causas más comunes incluyen:
- Intentar ejecutar un script o comando que requiere privilegios administrativos sin usar sudo.
- Modificar archivos de configuración del sistema (como en
/etc/) con un usuario estándar. - Propietarios de archivos incorrectos tras una transferencia, clonación o copia mediante herramientas de respaldo.
- Falta de permisos de ejecución (
+x) en un script de bash o binario descargado.
Método 1: Utilizar sudo para elevar privilegios temporalmente
Si estás intentando instalar un paquete, modificar archivos del sistema o acceder a directorios protegidos, la solución más directa es ejecutar la orden anteponiendo sudo (SuperUser DO).
- Abre tu terminal de Linux.
- Identifica el comando que te generó el error, por ejemplo:
apt updateocat /etc/shadow. - Vuelve a escribir el comando añadiendo
sudoal principio:sudo apt update. - Introduce la contraseña de tu usuario (nota que no se mostrarán asteriscos mientras escribes por seguridad) y presiona Enter.
Método 2: Modificar los permisos con chmod
Si el error ocurre al intentar ejecutar un archivo propio (como un script de automatización) y obtienes un Permission denied, significa que el archivo carece del bit de ejecución.
- Verifica los permisos actuales del archivo con el comando:
ls -l nombre_archivo.sh. - otorga permisos de ejecución al usuario propietario ejecutando:
chmod u+x nombre_archivo.sh. - Si necesitas que cualquier usuario del sistema pueda ejecutarlo, utiliza permisos recursivos o generales:
chmod +x nombre_archivo.sh. - Vuelve a intentar la ejecución del script llamándolo correctamente:
./nombre_archivo.sh.
Método 3: Cambiar el propietario con chown
A veces los archivos fueron creados por el usuario root (por ejemplo, al usar comandos con sudo), pero necesitas que pertenezcan a tu usuario actual para editarlos sin restricciones.
- Comprueba quién es el propietario actual del archivo o carpeta:
ls -l archivo_o_directorio. - Cambia el propietario asignándolo a tu usuario actual mediante el comando:
sudo chown -R $USER:$USER archivo_o_directorio. - La bandera
-Rasegura que el cambio se aplique de forma recursiva a todos los subdirectorios y archivos internos si se trata de una carpeta. - Verifica que el error haya desaparecido intentando acceder o modificar el recurso nuevamente.