mount está agregando un indicador de cuarentena, lo que provoca: /bin/bash: mal intérprete: operación no permitida, pero no los sospechosos habituales

Bien, tengo un problema similar a: -bash: Aplicaciones/mvim: /bin/sh: mal intérprete: Operación no permitida , pero no es el mismo problema. Estoy obteniendo el mismo resultado.

Ya verifiqué que no es el indicador com.apple.quarantine.

No son los finales de línea (el script se creó solo a partir de vi). Puedo ejecutar el script usando:

bash simpleshell.sh

Aquí están los resultados:

fawkes:tmp kylar$ vi simpleshell.sh
fawkes:tmp kylar$ chmod +x simpleshell.sh 
fawkes:tmp kylar$ ./simpleshell.sh 
-bash: ./simpleshell.sh: /bin/bash: bad interpreter: Operation not permitted
fawkes:tmp kylar$ cat simpleshell.sh 
#!/bin/bash
export FOO=Hey
echo $FOO
fawkes:tmp kylar$ which bash
/bin/bash
fawkes:tmp kylar$ bash simpleshell.sh 
Hey
fawkes:tmp kylar$ xattr -l simpleshell.sh 
fawkes:tmp kylar$ 

ACTUALIZACIÓN: no creo que sea el sistema de archivos montado como noexec. Intenté ejecutar el script en 3 lugares diferentes: /tmp, ~ y /source.

ACTUALIZACIÓN 2: Ok, después de investigar más, creé el script dentro de /source, que es un dmg montado. Ahí es donde ejecuté xattr -l y no encontré nada. Cuando compré el script en ~ y ejecuté xattr -l, tenía el xattr com.apple.quarantine. Por una corazonada, miré los atributos de montaje para /source y encontré:

/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)

Entonces, cuando monto este dmg, se establece como cuarentena. ¿Cómo puedo decirle a mount que no lo monte con la bandera de cuarentena? Una vez que eliminé la bandera en ~, el script funcionó bien.

Si no obtiene su respuesta aquí, considere preguntar sobre UNIX y Linux SE.
De todos modos, es posible que lo publique de forma cruzada: esto básicamente me impide realizar cualquier trabajo :(
¿Puede ejecutar otros programas en el mismo sistema de archivos de manera similar? Eso es usar chmod +x file.sh; ./file.sh. Tal vez ese sistema de archivos esté montado con el indicador "noexec".
@MaxRied Por favor, no sugiera que las personas realicen publicaciones cruzadas; preferiríamos migrarlo si el OP siente que se le preguntó aquí por error y pertenece a otro sitio.
Podría ser útil volver a escribir su pregunta para que solo pregunte cómo decirle a mount que no use el indicador de cuarentena, ya que ahora determinó que ese era su problema real. Además, no sé cómo deshabilitarlo para un volumen en particular, pero para deshabilitar la cuarentena por completo, defaults write com.apple.LaunchServices LSQuarantine -bool NO.
Vale, lo he solucionado. Había un xattr com.apple.quarantine establecido en el archivo .dmg. Tuve que desmontarlo, borrar el xattr y luego volver a montar el dmg. GAH. @houbysoft: gracias por el consejo de apagarlo por completo.
Genial, funciona, le sugiero que agregue una respuesta y explique brevemente cómo resolvió el problema. Esto ayudará a otros y evitará que su pregunta aparezca en el top ten Sin respuesta>sin respuestas. ¡Gracias!

Respuestas (2)

El script se estaba ejecutando desde dentro de un .dmg que tenía el indicador de cuarentena establecido. Cuando se montó el .dmg, lo estaba montando con un indicador de cuarentena que se hereda, pero no aparece. Desmonté el .dmg, eliminé el indicador de cuarentena y lo volví a montar, y todo estuvo bien.

Gracias por esto. Tuve un problema similar y me estaba volviendo loco: un script de Perl, creado por Vim (o incluso cat), sin xattr de cuarentena asociado. Sin embargo, el script residía en un paquete disperso montado. Después de leer esta página, desmonté el sistema de archivos y miré dentro del paquete: había un archivo llamado "token" que tenía el conjunto xattr "com.apple.quarantine". Una vez que eliminé el xattr y volví a montar el sistema de archivos del paquete disperso, mi problema de "intérprete incorrecto" con el script Perl desapareció.

Tengo una solución simple: cat configure.sh > test.sh y luego ejecute test.sh.

Resulta ser un problema del editor: https://discussions.apple.com/thread/3733470?start=30&tstart=0

No, no es una solución para mi situación. Como dice la pregunta, estaba usando vi para crear los scripts. Eso sí que es un enlace interesante.