8 votes

mount ajoute un drapeau de quarantaine, ce qui provoque : /bin/bash : mauvais interprète : Opération non autorisée - mais pas les suspects habituels

OK, j'ai un problème similaire : -bash : Applications/mvim : /bin/sh : mauvais interprète : Opération non autorisée - mais ce n'est pas le même problème. J'obtiens le même résultat.

J'ai déjà vérifié qu'il s'agit de no le drapeau com.apple.quarantine.

C'est no les fins de ligne (script a été créé à partir de vi). Je peux exécuter le script en utilisant :

bash simpleshell.sh

Voici les résultats :

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$ 

MISE À JOUR : je ne pense pas que ce soit le système de fichiers qui soit monté en tant que noexec. J'ai essayé d'exécuter le script à 3 endroits différents : /tmp, ~, et /source.

MISE A JOUR 2 : Ok, après plus de recherches - j'ai créé le script à l'intérieur de /source, qui est un dmg monté. C'est là que j'ai lancé xattr -l et je n'ai rien trouvé. Lorsque j'ai copié le script dans ~ et que j'ai lancé xattr -l, j'ai trouvé le xattr com.apple.quarantine. Sur une intuition, j'ai regardé les attributs de montage pour /source et j'ai trouvé :

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

Donc quand je monte ce dmg, il est mis en quarantaine. Comment puis-je dire à mount de ne pas le monter avec le drapeau de quarantaine ? Une fois que j'ai supprimé le drapeau en ~, le script s'est exécuté correctement.

1voto

Magic Hat Points 695

Le script était exécuté à partir d'un fichier .dmg sur lequel le drapeau de quarantaine était activé. Lorsque le .dmg a été monté, il a été monté avec un drapeau de quarantaine qui est hérité, mais qui n'apparaît pas. J'ai démonté le .dmg, supprimé le drapeau de quarantaine et l'ai remonté, et tout est rentré dans l'ordre.

0voto

sihong xie Points 1

J'ai une solution simple : cat configure.sh > test.sh puis exécuter test.sh.

Il s'agit en fait d'un problème d'éditeur : https://discussions.apple.com/thread/3733470?start=30&tstart=0

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X