O que faz com que o OS X marque uma pasta como em quarentena?

35

Eu tinha uma pasta ~/Sites, digamos assim Foo, da qual estava compartilhando um site do Wordpress em desenvolvimento via Apache. Esta multa foi trabalhar, eu tinha mapeado foo.localpara 127.0.0.1no meu arquivo hosts e estava acessando o site de lá no meu laptop.

Então, tentei acessar o site do meu iPhone. Consegui ver o índice raiz ~/Sitesdo telefone navegando até my-computers-hostname.local, mas não consegui acessar o site do Wordpress, pois ele havia sido configurado para acreditar que seu endereço era foo.locale, portanto, tinha referências codificadas para esse URL em seu banco de dados. Quando tentei alterar sua configuração de URL para my-computers-hostname.local, aconteceu algo muito estranho: recebi um erro de autorização ao tentar salvar a alteração. A partir desse momento, toda a pasta que contém o site do Wordpress desapareceu da página de índice em foo.local/ my-computers-hostname.local, e quaisquer tentativas de acessá-lo por URL foram atendidas com um erro 403 - Autorização recusada do servidor da web.

A listagem da pasta em questão no Terminal me mostrou que o com.apple.quarantineatributo estendido havia sido aplicado a ela e a todos os arquivos contidos nela. O que faria com que o sistema operacional colocasse a pasta em quarentena? Foi a tentativa de acesso de outra máquina, ou algo a ver com a configuração do Wordpress?

Dan J
fonte

Respostas:

43

Os com.apple.quarantineatributos estendidos provavelmente não têm nada a ver com os problemas que você está tendo com o Apache. Eles fazem parte do recurso de quarentena de arquivos que foi adicionado na 10.5 :

A Quarentena de arquivos é um novo recurso do Leopard desenvolvido para proteger os usuários contra ataques de cavalos de Troia. Ele permite que aplicativos que baixam o conteúdo de arquivos da Internet coloquem arquivos em "quarentena" para indicar que o arquivo pode ser de uma fonte não confiável. Um aplicativo coloca em quarentena um arquivo simplesmente atribuindo valores a uma ou mais propriedades de quarentena que preservam informações sobre quando e de onde o arquivo é proveniente.

Quando a API do Launch Services é usada para abrir um arquivo em quarentena e o arquivo parece ser um aplicativo, script ou outro tipo de arquivo executável, o Launch Services exibe um alerta para confirmar que o usuário entende que o arquivo é algum tipo de aplicativo.

Os com.apple.quarantineatributos estendidos podem ser adicionados quando:

  • Você baixa um arquivo com um aplicativo com reconhecimento de quarentena, como Safari, Chrome ou Transmission. Para alguns aplicativos como o Firefox, a quarentena é forçada a ser ativada /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist.
  • Você extrai um arquivo morto com um aplicativo como o Archive Utility ou OS X's tarou zip.
  • Você cria um arquivo com um aplicativo LSFileQuarantineEnableddefinido como true no Info.plist.

Os atributos estendidos possuem campos para o status de quarentena, um registro de data e hora, o agente que originou o evento de quarentena e, às vezes, um 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);

O primeiro campo é um campo de bits hexadecimal, onde, por exemplo, o sétimo bit (2 ^ 6 ou 0x40) geralmente é definido após a abertura de um arquivo pela primeira vez.

Você pode excluir os atributos estendidos com xattr -dr com.apple.quarantine ~/Sites, mas provavelmente não terá nenhum efeito no Apache. No entanto, desabilitará as caixas de diálogo "é um arquivo baixado da Internet".

Lri
fonte
"opção -r não reconhecida"
Jamie Ivanov
3
xattr -dr com.apple.quarantine <path>trabalho !
parasrish
Referência para os detalhes: discussions.apple.com/message/15507936#message15507936
parasrish
Recurso incrivelmente irritante, eu nunca tive nenhum uso dele. Obrigado por explicar
cjohansson
1
xattr -dr com.apple.quarantine <path>me deu option -r not recognized, mas xattr -d com.apple.quarantine <path>funcionou!
saulspatz