0 votos

¿Es un error para zsh ejecutar un script en cuarentena?

Actualización: No voy a eliminar la pregunta aunque sea inútil. La respuesta es, sí, sería un error, pero zsh no lo hace. Me equivoqué al escribir los detalles. Un script en cuarentena puede ser editado con vi en zsh pero no puede ser ejecutado. Dado que se proporcionó una respuesta más detallada (aunque supuestamente no podemos responder a una pregunta cerrada), la dejaré aquí como referencia.

Antecedentes:

Tengo varios scripts de zsh en ~/bin y a menudo los he editado con TextEdit.

Hoy, sin embargo, cada vez que edito uno con TextEdit y lo guardo, TextEdit ya no puede abrirlo de nuevo, afirma que está dañado y debe ser movido a la papelera.

od -xc mostró no caracteres no ASCII.

ls -lae@t mostró que tenía una etiqueta de cuarentena.

xattr -d com.apple.quarantine bin dijo "xattr: bin/Mission: No existe xattr: com.apple.quarantine" y eliminó todos los xattrs¹ y luego TextEdit pudo abrirlo.

Hay que tener en cuenta que otra persona tenía el comportamiento opuesto: TextEdit aún podía abrirlo, pero ya no podían ejecutar el archivo.

Que TextEdit de repente empiece a hacer esto cuando no se ha actualizado nada durante más de una semana (excepto iMovie) es claramente un error. Pero ¿es un error que zsh siga ejecutando un script en cuarentena? Esta no es una pregunta de opinión. Probablemente Apple tenga documentación en algún lugar describiendo qué debería ocurrir. Si no la tienen, y alguien sabe que no la tienen, entonces esa es la respuesta. Si la tienen, lo que diga esa documentación (que no he visto) es la respuesta.

Cuando una persona puede ejecutar un script en cuarentena y otra no, hay un error en uno de los lados, o en ambos.

¹incluyendo la codificación, aunque no importa para este script.

1voto

David Anderson Puntos 2189

Esta respuesta se refiere a macOS Monterey 12.0.1.

No es un error que zsh ejecute un script en cuarentena. A continuación se explica por qué creo que esto es cierto.

Los problemas planteados en la pregunta del OP tienen que ver con el contenido del atributo extendido com.apple.quarantine y no necesariamente con la existencia del atributo en sí.

La aplicación TextEdit agrega un atributo extendido com.apple.quarantine al guardar archivos de script editados. A continuación se muestra un ejemplo del archivo de script llamado bar.

#!/bin/zsh
echo "hola"

El contenido de este atributo extendido com.apple.quarantine se muestra a continuación.

0086;6198914d;TextEdit;

El artículo Quarantine and the quarantine flag se refiere a los primeros cuatro caracteres (0086) como el valor de cuarentena en hexadecimal. La cadena de caracteres 6198914d es el momento en el que se adjuntó el atributo extendido, en hexadecimal. Después de algunas pruebas, determiné que el script no se ejecutará (desde zsh por defecto) con un mensaje de zsh: operación no permitida: bar cuando se establece el bit 0x0004. De lo contrario, el script se ejecutará. Dado que el bit 0x0004 está configurado en el valor de cuarentena de 0x0086, el script no se puede ejecutar.

Cuando se descarga un archivo de Internet utilizando Safari, se adjunta un atributo extendido com.apple.quarantine al archivo. El contenido de ejemplo de este atributo extendido com.apple.quarantine se muestra a continuación.

0083;61991274;Safari;773A774E-C8E8-41A4-8EC3-AF0E00656893

Aquí, el bit 0x0004 no está configurado en el valor de cuarentena de 0x0083. Este atributo extendido com.apple.quarantine no evitará que se ejecute un script.

Respecto al Uso de TextEdit

Puede abrir el script en la aplicación TextEdit si alguno de los bits 0xFF40 está establecido. De lo contrario, obtendrá el siguiente aviso, si el bit 0x0004 está configurado.

dañado

Cualquier otra combinación resulta en el siguiente aviso.

desarrollador

Por supuesto, no probé todos los 65536 enteros posibles para el valor de cuarentena. Por lo tanto, puede que existan excepciones a lo que he publicado anteriormente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X