Enviado por Antonio Diego Duarte Sánchez. En ocasiones algo puede torcerse con nuestro sistema operativo MacOS y que al intentar abrir un archivo haciendo doble clic aparezcan mensajes de error como “El archivo está dañado y no se puede abrir. Deberías trasladarlo a la papelera.” Vamos a ver cómo solucionarlo.

Si tienes problemas al abrir archivos que hayas descargado de internet, o al intentar abrir un archivo haciendo doble clic, y aparece el mensaje «El archivo está dañado y no se puede abrir. Deberías trasladarlo a la papelera», sigue leyendo y te explicamos cómo solucionarlo.

Error al abrir archivos con doble clic
Error al abrir archivos con doble clic. Archivo creado con Pixelmator

Si te aparecen esos mensajes, no importará qué aplicación creó originalmente el archivo, como se ve en la siguiente captura. Seguirás sin poder abrir los archivos haciendo doble clic.

Error al abrir archivos con doble clic. Archivo creado con vista Previa
Error al abrir archivos con doble clic. Archivo creado con Vista Previa

Si tratamos de abrirlo haciendo control+clic o botón_derecho+clic, obtenemos el mismo error. Tanto da que sea una imagen, un documento, un archivo comprimido o un archivo de imagen .dmg.

Esto parece suponer que GateKeeper está funcionando mal; lo normal sería, en todo caso, que nos diese un mensaje de documento descargado de Internet y que nos permitiera abrirlo, no volviendo a dar más problemas.

Lo curioso es que, a partir de este momento, poco a poco iremos recibiendo este mensaje con cada archivo que tratemos de abrir haciendo doble clic. Sin embargo, sí podremos abrirlos desde una aplicación compatible con ellos.

Este mensaje nos puede llevar a confusión, por su similitud con el que recibimos cuando tratamos de abrir una aplicación descargada de un desarrollador no identificado. Si hacemos una búsqueda de ese mensaje con Google (por ejemplo) obtendremos que la solución consiste en ejecutar el comando:

sudo spctl --master-disable

Tras ello, en las Preferencias del Sistema > Seguridad y Privacidad > General, aparecerá la opción “Cualquier sitio”, que podremos activar para permitir la ejecución de programas de cualquier procedencia.

Pero resulta que esta no es la solución a nuestro problema al abrir archivos en MacOS, pues la cuestión reside en que lo que hemos descargado o creado y que intentamos abrir no es una aplicación de un desarrollador desconocido, sino un archivo de procedencia desconocida para el sistema de seguridad de MacOS X.

En mi caso, el sistema operativo es Mojave (10.14.4). En Preferencias del Sistema está seleccionado “Permitir apps descargadas de: App Store y desarrolladores identificados”; no importa el usuario que trata de abrir los archivos; no importa que pasemos Primera Ayuda o el socorrido “fcsk -y” arrancando en monousuario; no importa que arranquemos con las extensiones desactivadas.

Algo está provocando el problema al abrir los archivos utilizando el método tradicional del doble clic en ellos.

En un momento de inspiración que me inundó tras encontrar un breve artículo que refería al comando “xattr”, me lancé a descubrir si el problema podría residir en los atributos extendidos de los archivos.

Para ello, abrí una ventana de Terminal y ejecuté el comando:

sudo xattr -l ruta_archivo

con el resultado siguiente:

Archivos marcados por macOS como en cuarentena
Archivos marcados por macOS como en cuarentena

Debemos fijarnos en la última línea y comprobaremos que algo ha metido el archivo en el sistema de cuarentena de apple (com.apple.quarantine).

Podemos eliminar el atributo extendido ejecutando

xattr -dr com.apple.quarantine ruta_archivo

con el resultado siguiente tras volver a ejecutar

xattr -l ruta_archivo:

Pantalla del Terminal con archivo sin cuarentena
Pantalla del Terminal con archivo sin cuarentena

Vemos que ha desaparecido la última línea; si ahora hacemos doble clic en el archivo nos deja abrirlo UNA VEZ.

El problema viene al tratar de abrirlo de nuevo haciendo doble clic; resulta que se nos añade nuevamente el atributo extendido com.apple.quarantine y nos devuelve nuevamente el error «El archivo está dañado y no se puede abrir. Deberías trasladarlo a la papelera».

Este comportamiento parece significar que el sistema de protección GoalKeeper no está funcionando adecuadamente.

En mi experiencia, he podido dar solución al problema abriendo los items de arranque del usuario (en Preferencias del Sistema —> Usuarios y grupos —> Usuario actual —> Ítems de inicio) y lo dejo limpio (o, como mucho y en mi caso, el Sistema de Copia de Seguridad y Sincronización de Google Drive).

A continuación he ejecutado el comando:

sudo xattr -dr com.apple.quarantine /Volumen/*

Al terminar la ejecución del comando anterior, he reiniciado el sistema en modo recuperación (manteniendo pulsadas las teclas Comando+r durante el arranque del Mac), he abierto una sesión de Terminal y he tecleado:

csrutil enable <intro>

Para asegurarme de que está activo el sistema de protección de integridad del sistema.

Tras reiniciar, todo ha vuelto a la normalidad y ya no tengo problemas al abrir archivos haciendo doble clic.

Sin embargo, debo admitir que no quedo completamente satisfecho con la solución. Sé qué ha ocurrido y sé cómo lo he solucionado…, pero no sé qué programa o proceso lo ha provocado.

Así que este artículo queda abierto a un post scriptum.

si uales bene est ego ualeo.

😉

Antonio Diego Duarte

 

También puede interesarte aprender sobre Xprotect y Yara

In this article


Join the Conversation

3 comments

  1. Alberto Lozano

    Esos ficheros en cuarentena fueron descargados de internet, ¿Cierto?

    1. adduartes

      No todos. Ni los primeros que empezaron a dar problemas en la segunda ocasión (la primera fue cuando puse el hilo en el Facebook de Mac-Club).

      Los que he puesto en las capturas son solo unos ejemplos entre otros.

  2. japerna

    Tengo los mismos síntomas que comentas, pero en mi iMac no se ha solucionado el problema
    Es un problema bastante molesto que cada vez que abres un archivo se marque como peligroso y ya no se pueda abrir nunca más directamente sin quitarle el dichoso atributo de com.apple.quarantine
    ¿Alguien ha encontrado alguna otra solución?