Question Que dois-je faire à propos de com.apple.quarantine?


J'ai téléchargé quelques .jar fichiers de l'internet et que vous souhaitez les utiliser sous Mac OS X. Mais le système d'exploitation semble les avoir étiquetés avec l'attribut étendu com.apple.quarantine (pas d'indication jusqu'à ce que j'ai remarqué le "@" dans le ls -l et compris comment utiliser ls -l@) - apparemment parce qu'ils ont été téléchargés depuis Internet. Quelle est la bonne façon de gérer cela?


82
2017-08-23 21:10


origine




Réponses:


Cet attribut est ajouté afin qu'il puisse demander la confirmation de l'utilisateur la première fois que le programme téléchargé est exécuté, pour aider à arrêter les logiciels malveillants. Après confirmation, l'attribut doit être supprimé automatiquement, puis le programme s'exécutera normalement.


56
2017-08-23 21:39



ahhhhhh .... ok ça a du sens. Il s’agit donc d’un contrat entre les implémentations de navigateurs qui enregistrent les fichiers et le système d’exploitation et / ou Java lorsqu’il exécute des fichiers exécutables. - Jason S


Vous n'avez pas avoir 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 ce faire automatiquement pour tout fichier téléchargé, vous pouvez joindre 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é posté sur macosxhints.com il y a longtemps, pour Safari: 10.5: Désactiver l'avertissement du fichier 'téléchargé depuis internet', affirmant qu'on peut supprimer VerifiedDownloadPlugin.plugin de /Library/Internet Plug-Ins. Je n'ai pas testé ça.

En passant: il faut parfois lancer plusieurs fois un seul programme sur un Mac. Cela peut être fait en utilisant cd /Applications/some-application/ suivi par open -n "Application Name.app". Cela a vraiment besoin de la .app suffixe; fonctionnement open -n "Application Name" pourrait avoir 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é autorisent l'installation uniquement des applications du Mac App Store et des développeurs identifiés.

Au-dessus, même en supprimant l'attribut étendu com.apple.quarantine ne résout pas cela, mais en utilisant le .app le suffixe fonctionne très bien.

(Je ne conseille à personne de se débarrasser des mesures de sécurité.)


73
2017-08-23 21:40



J'ai un certain nombre de fichiers comme celui-ci et j'ai dû supprimer manuellement le xattr car OS X n'a ​​pas demandé la permission ... - Brian Knoblauch
@Brian, et a fait un clic droit, Ouvrir non invite non plus? (Cela aide parfois si OS X en invite un, mais n'affiche pas la possibilité de continuer.) - Arjan
Merci pour l'incantation de xattr, moins gênant que de savoir comment déclencher un dialogue inapproprié (IMO) sur un framework. - Sue Spence


 xattr -d com.apple.quarantine /path/to/file

18
2017-08-23 21:33



Ne pas utiliser sudo quand vous ne devez pas. - s4y
Édité la réponse pour supprimer 'sudo'. - Richard Hoskins
Comment faites-vous cela récursivement à tous les fichiers d'un répertoire? - Landon Kuhn
@ landon9720 - Le (actuellement) réponse ci-dessous a un commentaire cela vous permet de demander à xattr de travailler récursivement sur le contenu d'un répertoire fourni - user66001
find /path/to/dir -exec xattr -d com.apple.quarantine {} \; - sepehr


Vous pouvez désactiver les avertissements de manière permanente avec defaults write com.apple.LaunchServices LSQuarantine -bool false. Il désactive également les boîtes de dialogue Gatekeeper même si les applications téléchargées dans les Préférences Système ne sont pas autorisées.


4
2018-05-03 13:36





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 doubles autour $l - Vous en avez besoin si votre dossier d'applications contient des fichiers avec un nom vide.


1
2018-03-31 20:44



Vous pouvez aussi utiliser xattr -rd com.apple.quarantine Application.app. - user495470
Vous n'avez pas besoin de la boucle while ... find peut tout faire: "trouver Application.app -print -exec xattr -d com.apple.quarantine {} \;" - rivimey
"option -r non reconnu" - Jamie Ivanov
Pas besoin de lancer un nouveau processus pour chaque fichier, ni de supprimer le fichier xattribute du fichier s'il ne le contient pas en premier lieu: find . -xattrname com.apple.quarantine -print0 | xargs -0 xattr -d com.apple.quarantine - dland