¿Qué es el error Permiso Denegado (Permission Denied) en Linux?
Uno de los problemas más comunes a los que se enfrentan tanto usuarios novatos como administradores de sistemas en Linux es el mensaje Permission denied al intentar ejecutar un script, leer un archivo o acceder a un directorio. Este error de seguridad surge cuando el usuario actual no cuenta con los privilegios necesarios para realizar dicha acción sobre el recurso especificado.
Causas principales del error
- Falta de permisos de lectura, escritura o ejecución en el archivo o directorio.
- El usuario actual no es el propietario (owner) del archivo.
- Intento de ejecutar una acción administrativa sin privilegios de superusuario (root).
- Restricciones aplicadas por políticas de seguridad del sistema de archivos.
Método 1: Usar sudo para elevar privilegios temporalmente
Si necesitas ejecutar un comando que requiere permisos de administrador, la solución más directa es anteponer sudo al comando original.
- Abre tu terminal.
- Ejecuta el comando fallido anteponiendo sudo, por ejemplo:
sudo apt updateosudo nano /etc/hosts. - Introduce la contraseña de tu usuario (nota que no se mostrarán caracteres mientras escribes por seguridad) y presiona Enter.
Método 2: Cambiar los permisos del archivo con chmod
Si el archivo es tuyo pero no puedes ejecutarlo o modificarlo, debes ajustar sus permisos utilizando el comando chmod.
- Comprueba los permisos actuales con:
ls -l nombre_archivo. - Para dar permisos de ejecución a todos los usuarios, ejecuta:
chmod +x nombre_archivo. - Si necesitas otorgar control total (lectura, escritura y ejecución) al propietario, usa:
chmod 700 nombre_archivo.
Método 3: Cambiar el propietario con chown
A veces, los archivos son creados por el usuario root y no puedes editarlos con tu cuenta habitual. Debes transferir la propiedad al usuario actual.
- Verifica quién es el propietario actual con:
ls -l. - Cambia el propietario ejecutando el siguiente comando:
sudo chown tu_usuario:tu_usuario nombre_archivo. - Si es una carpeta completa y quieres aplicar el cambio a todo su contenido de forma recursiva, añade la bandera -R:
sudo chown -R tu_usuario:tu_usuario nombre_directorio.