J'ai téléchargé des fichiers .jar
sur Internet et je souhaite les utiliser sous Mac OS X. Mais le système d'exploitation semble les avoir étiquetés avec l'attribut étendu com.Apple.quarantine (aucune indication à ce sujet jusqu'à ce que j'ai remarqué le "@
" le ls -l
et comment utiliser ls -l@
) - apparemment parce qu'ils ont été téléchargés à partir d'Internet. Quelle est la bonne façon de gérer cela?
Cet attribut est ajouté pour qu'il puisse demander à l'utilisateur de confirmer la première exécution du programme téléchargé, afin d'aider à arrêter les logiciels malveillants. Après confirmation, l'attribut doit être supprimé automatiquement, puis le programme s'exécutera normalement.
Vous n'avez pas pour y faire face. Ouvrez-le et OS X vous demandera votre permission. Ou comme suggéré par Richard, supprimez-le en utilisant quelque chose comme:
xattr -d com.Apple.quarantine my_jar.jar
Pour le faire automatiquement pour tout fichier téléchargé, vous pouvez associer une action de dossier au dossier de téléchargement, comme décrit sur macosxhints.com dans 10.5: supprimer l'indicateur d'avertissement 'fichier téléchargé' .
Et ce qui suit a été publié sur macosxhints.com il y a longtemps, pour Safari: 10.5: Désactiver l'avertissement de fichier 'téléchargé à partir d'Internet' , prétendant qu'on peut retirez VerifiedDownloadPlugin.plugin
de /Library/Internet Plug-Ins
. Je n'ai pas testé ça.
En passant: il est parfois nécessaire de démarrer plusieurs fois un même programme sur un Mac. Cela peut être fait en utilisant cd /Applications/some-application/
suivi de open -n "Application Name.app"
. Cela nécessite vraiment le suffixe .app
; exécuter open -n "Application Name"
peut obtenir un GateKeeper bloquant l'accès:
"Nom de l'application" ne peut pas être ouvert car il provient d'un développeur non identifié.
Vos préférences de sécurité ne permettent l'installation que des applications à partir du Mac App Store et des développeurs identifiés.
Ci-dessus, même la suppression de l'attribut étendu com.Apple.quarantine
ne résout pas le problème, mais l'utilisation du suffixe .app
fonctionne parfaitement.
(Je ne conseille à personne de se débarrasser des mesures de sécurité.)
xattr -d com.Apple.quarantine /path/to/file
Vous pouvez désactiver les avertissements de façon permanente avec defaults write com.Apple.LaunchServices LSQuarantine -bool false
. Il désactive également les boîtes de dialogue de Gatekeeper même si vous n'avez pas autorisé les applications téléchargées à partir de n'importe où dans les Préférences Système.
J'ai trouvé la commande suivante
find Application.app | while read l; do echo $l; xattr -d com.Apple.quarantine "$l"; done
très utile lorsque vous essayez de vous débarrasser de l'attribut. Notez les guillemets autour de $l
- vous en aurez besoin si votre dossier d'applications contient des fichiers vierges.
xattr a maintenant un drapeau -r à recurse. Donc, vous n'avez pas à passer par cette recherche. De plus, il a un -c qui effacera TOUS les drapeaux (y compris FinderInfo), ce qui n’est pas toujours recommandé sauf si vous êtes vraiment en colère contre lui. :-)