Co powoduje, że OS X oznacza folder jako poddany kwarantannie?

35

Miałem pod folderem ~/Sites, nazwijmy go Foo, z którego dzieliłem stronę rozwoju Wordpress za pośrednictwem Apache. To działało dobrze, zmapowałem foo.localdo 127.0.0.1pliku hostów i stamtąd uzyskiwałem dostęp do witryny na moim laptopie.

Następnie próbowałem uzyskać dostęp do witryny z mojego iPhone'a. Byłem w stanie zobaczyć indeks główny ~/Sitesz telefonu, przeglądając stronę my-computers-hostname.local, ale nie mogłem uzyskać dostępu do strony Wordpress, ponieważ została ona skonfigurowana tak, aby wierzyć, że jej adres jest foo.local, a zatem miała na stałe odniesienia do tego adresu URL w swojej bazie danych. Kiedy próbowałem zmienić ustawienie adresu URL na my-computers-hostname.local, stało się coś bardzo dziwnego: otrzymałem błąd autoryzacji podczas próby zapisania zmiany. Od tego momentu cały folder zawierający witrynę Wordpress zniknął ze strony indeksu pod adresem foo.local/ my-computers-hostname.local, a wszelkie próby dostępu do niego za pomocą adresu URL spotkały się z błędem 403 - odmowa autoryzacji z serwera WWW.

Lista danego folderu w terminalu pokazała mi, że com.apple.quarantineatrybut rozszerzony został zastosowany do niego i do wszystkich zawartych w nim plików. Co spowodowałoby, że system operacyjny poddałby folder kwarantannie? Czy była to próba dostępu z innej maszyny, czy może coś wspólnego z konfiguracją Wordpress?

Dan J.
źródło

Odpowiedzi:

43

Te com.apple.quarantineatrybuty rozszerzone prawdopodobnie nie mają nic wspólnego z kwestiami masz z Apache. Są częścią funkcji kwarantanny plików, która została dodana w 10.5 :

Kwarantanna plików to nowa funkcja systemu Leopard, która ma chronić użytkowników przed atakami koni trojańskich. Pozwala aplikacjom, które pobierają zawartość pliku z Internetu, umieszczać pliki w „kwarantannie”, aby wskazać, że plik może pochodzić z niewiarygodnego źródła. Aplikacja poddaje plik kwarantannie, przypisując wartości do jednej lub więcej właściwości kwarantanny, które zachowują informacje o tym, kiedy i skąd pochodzi plik.

Gdy interfejs API Launch Services jest używany do otwierania pliku poddanego kwarantannie, a plik wydaje się być aplikacją, skryptem lub innym typem pliku wykonywalnego, usługi uruchamiania wyświetlają alert, aby potwierdzić, że użytkownik rozumie, że plik jest jakąś aplikacją.

Te com.apple.quarantinerozszerzone atrybuty mogą być dodawane, gdy:

  • Pobierasz plik za pomocą aplikacji obsługującej kwarantannę, takiej jak Safari, Chrome lub Transmission. W przypadku niektórych aplikacji, takich jak Firefox, kwarantanna musi być włączona w /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist.
  • Wypakuj archiwum za pomocą aplikacji takiej jak Archive Utility lub OS X tarlub zip.
  • Tworzysz plik za pomocą aplikacji, która ma LSFileQuarantineEnabledwartość true w pliku Info.plist.

Rozszerzone atrybuty mają pola statusu kwarantanny, znacznik czasu, agenta, który zainicjował zdarzenie kwarantanny, a czasem identyfikator 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);

Pierwsze pole to szesnastkowe pole bitowe, w którym na przykład siódmy bit (2 ^ 6 lub 0x40) jest zwykle ustawiany po pierwszym otwarciu pliku.

Możesz usunąć rozszerzone atrybuty za pomocą xattr -dr com.apple.quarantine ~/Sites, ale prawdopodobnie nie będzie to miało żadnego wpływu na Apache. Spowoduje to jednak wyłączenie okien dialogowych „to plik pobrany z Internetu”.

Lri
źródło
„opcja -r nie rozpoznano”
Jamie Iwanow
3
xattr -dr com.apple.quarantine <path>Prace !
parasrish
Odniesienie do szczegółowych informacji: dyskusje.apple.com/message/15507936#message15507936
parasrish
Niesamowicie denerwująca funkcja, nigdy z niej nie korzystałem. Dziękujemy za wyjaśnienie
cjohansson
1
xattr -dr com.apple.quarantine <path>dał mi option -r not recognized, ale xattr -d com.apple.quarantine <path>pracował!
saulspatz