Problema
MacOS establece xattr com.apple.quarantine Cuando edito y guardo el archivo myscript.sh en una memoria USB
Estamos en la memoria USB
[stick128] pwd
/Volumes/stick128
Los xatributos de los archivos de texto antes de ser editados
[stick128] ls -la@ myScript.sh
-rwxrwxrwx@ 1 schmelzer staff 28 22 Okt 02:16 myScript.sh
com.apple.metadata:kMDLabel_vmtpkn3xxtzmlwr5m34qap3z4a 185
Los xatributos de los archivos de texto después de ser editados y guardados
[stick128] ls -la@ myScript.sh
-rwxrwxrwx@ 1 schmelzer staff 30 22 Okt 02:20 myScript.sh
com.apple.quarantine 24
com.apple.metadata:kMDLabel_vmtpkn3xxtzmlwr5m34qap3z4a 201
Causa
??
Solución temporal
Eliminar el xattr manualmente
xattr -d com.apple.quarantine myscript.sh
Gracias a -bash: Aplicaciones/mvim: /bin/sh: intérprete malo: Operación no permitida
Pero la próxima vez que edite el archivo, ¿quién añadirá el xattr?
- por el editor de textos?
- por MacOS (¿como parte del sistema SIP?)
Mi entorno
- MacOS Sierra, versión 10.12.6
- Editor de textos: CotEditor, versión 3.2.2 (203)
- Memoria USB: SanDisk 128GB Connect Wireless Stick, conectado al puerto USB
Mi investigación 1
P: ¿El problema está sólo en la memoria USB? O también está en mi disco duro?
R: El problema no está en el disco duro. Sólo en la memoria USB
Detalles de la investigación 1 Estamos en el disco duro del Mac, donde está instalado MacOS
[Desktop] pwd
/Users/schmelzer/Desktop
Los xatributos de los archivos de texto antes de ser editados
[Desktop] ls -la@ myScript.sh
-rwxrwxrwx@ 1 schmelzer staff 30 22 Okt 02:20 myScript.sh
com.apple.metadata:kMDLabel_vmtpkn3xxtzmlwr5m34qap3z4a 201
Los xatributos de los archivos de texto después de ser editados y guardados
[Desktop] ls -la@ myScript.sh
-rwxrwxrwx@ 1 schmelzer staff 28 22 Okt 02:25 myScript.sh
com.apple.metadata:kMDLabel_vmtpkn3xxtzmlwr5m34qap3z4a 201
Resultado de la prueba
El xattr de cuarentena no se ha añadido al archivo. Por lo tanto, el problema no existe en el disco duro. Sólo en la memoria USB.
Mi investigación 2
P: ¿Existe un archivo con la bandera de cuarentena establecida, en la memoria USB? mount está añadiendo una bandera de cuarentena, causando: /bin/bash: intérprete malo: Operación no permitida - pero no los sospechosos habituales
R: Sí, había muchos.
Detalles de la investigación 2
Lista de atributos de todos los archivos de la memoria
xattr -r /Volumes/stick128/
Elimine el atributo com.apple.quarantine de todos los archivos de la memoria USB
sudo xattr -r -d com.apple.quarantine /Volumes/stick128
Prueba a provocar el error de nuevo, editando y guardando el archivo myScript.sh
Resultado
- No hay error
- El xattr com.apple.quarantine no se añade a myScript.sh
Mi investigación 3
P: Si utilizo un editor de texto diferente, ¿el problema sigue siendo el mismo? mount está añadiendo una bandera de cuarentena, causando: /bin/bash: intérprete malo: Operación no permitida - pero no los sospechosos habituales
R: No se ha probado
Mi investigación 4
Sólo como referencia:
- En este post se describe el "intérprete malo": Operation not permitted" Error", que ocurre, cuando se intenta ejecutar un shell script con la bandera de cuarentena xattr activada.
- -bash: Aplicaciones/mvim: /bin/sh: intérprete malo: Operación no permitida