Qu'est-ce qui pousse OS X à marquer un dossier comme étant mis en quarantaine?

35

J'avais un dossier sous ~/Sites, appelons-le Foo, à partir duquel je partageais un site Wordpress en développement via Apache. Tout allait très bien travailler, je mappée foo.localà 127.0.0.1mon fichier hosts et accédait le site à partir de là sur mon ordinateur portable.

Ensuite, j'ai essayé d'accéder au site depuis mon iPhone. J'ai pu voir l'index racine ~/Sitesdu téléphone en surfant sur my-computers-hostname.local, mais je n'ai pas pu accéder au site Wordpress, car il avait été configuré pour croire que son adresse était foo.local, et avait donc des références codées en dur à cette URL dans sa base de données. Lorsque j'ai tenté de modifier son paramètre d'URL en my-computers-hostname.local, quelque chose de très étrange s'est produit: j'ai reçu une erreur d'autorisation lors de la tentative d'enregistrement de la modification. À partir de ce moment, le dossier complet contenant le site Wordpress a disparu de la page d'index à foo.local/ my-computers-hostname.local, et toute tentative d'accès par URL a rencontré une erreur 403 - Autorisation refusée du serveur Web.

La liste du dossier en question dans le terminal m'a montré que l' com.apple.quarantineattribut étendu lui avait été appliqué et à tous les fichiers qu'il contenait. Qu'est-ce qui amènerait le système d'exploitation à mettre le dossier en quarantaine? Était-ce la tentative d'accès à partir d'une autre machine ou quelque chose à voir avec la configuration de Wordpress?

Dan J
la source

Réponses:

43

Les com.apple.quarantineattributs étendus n'ont probablement rien à voir avec les problèmes que vous rencontrez avec Apache. Ils font partie de la fonction de mise en quarantaine des fichiers qui a été ajoutée dans la version 10.5 :

La quarantaine de fichiers est une nouvelle fonctionnalité de Leopard conçue pour protéger les utilisateurs contre les attaques de chevaux de Troie. Il permet aux applications qui téléchargent le contenu d'un fichier sur Internet de placer des fichiers en «quarantaine» pour indiquer que le fichier pourrait provenir d'une source non fiable. Une application met un fichier en quarantaine simplement en attribuant des valeurs à une ou plusieurs propriétés de quarantaine qui préservent les informations sur la date et l'origine du fichier.

Lorsque l'API Launch Services est utilisée pour ouvrir un fichier en quarantaine et que le fichier semble être une application, un script ou un autre type de fichier exécutable, Launch Services affiche une alerte pour confirmer que l'utilisateur comprend que le fichier est une sorte d'application.

Les com.apple.quarantineattributs étendus peuvent être ajoutés lorsque:

  • Vous téléchargez un fichier avec une application compatible avec la quarantaine, comme Safari, Chrome ou Transmission. Pour quelques applications comme Firefox, la quarantaine est forcée d'être activée dans /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist.
  • Vous extrayez une archive avec une application comme Archive Utility ou OS X tarou zip.
  • Vous créez un fichier avec une application LSFileQuarantineEnableddéfinie sur true dans le Info.plist.

Les attributs étendus ont des champs pour le statut de quarantaine, un horodatage, l'agent à l'origine de l'événement de quarantaine et parfois un UUID:

$ xattr -p com.apple.quarantine Worksheet_v10.4.pdf
0042;51ea420b;Safari.app;5E2F48EA-1356-4D57-BFEA-571EE8ADC08C
$ date -r 0x51ea420b
Sat Jul 20 10:53:47 EEST 2013
$ sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 .dump|grep 5E2F48EA-1356-4D57-BFEA-571EE8ADC08C
INSERT INTO "LSQuarantineEvent" VALUES('5E2F48EA-1356-4D57-BFEA-571EE8ADC08C',395999627.472166,'com.apple.Safari','Safari','http://images.apple.com/server/docs/Worksheet_v10.4.pdf',NULL,NULL,0,NULL,'http://images.apple.com/',NULL);

Le premier champ est un champ binaire hexadécimal, où par exemple le septième bit (2 ^ 6 ou 0x40) est généralement défini après avoir ouvert un fichier pour la première fois.

Vous pouvez supprimer les attributs étendus avec xattr -dr com.apple.quarantine ~/Sites, mais cela n'aura probablement aucun effet sur Apache. Il désactivera cependant les boîtes de dialogue "est un fichier téléchargé depuis Internet".

Lri
la source
"option -r non reconnue"
Jamie Ivanov
3
xattr -dr com.apple.quarantine <path>travaux !
parasrish
Référence pour des informations détaillées: discussions.apple.com/message/15507936#message15507936
parasr
Fonctionnalité incroyablement ennuyeuse, je ne l'ai jamais utilisée. Merci d'avoir expliqué
cjohansson
1
xattr -dr com.apple.quarantine <path>m'a donné option -r not recognized, mais a xattr -d com.apple.quarantine <path>fonctionné!
saulspatz