Czyszczenie ukrytej historii pobranych plików na Maku
Surfując po bezkresnych wodach oceanu zwanego Internetem nie tylko odwiedzamy witryny internetowe, które nas interesują ale również bardzo często pobieramy wszelkiego rodzaju pliki. Przeglądarka Safari pozwala w znacznej mierze zatrzeć ślady naszej sieciowej aktywności, dzięki wybraniu z menu programu (Safari lub Historia) opcji Wymaż historię i dane witryn…
Dodatkowo możemy też bezpośrednio w oknie Pobieranie skopiować odsyłacz do pobranego pliku lub skasować wybrany wpis (lub wszystkie) z listy.
Okazuje się jednak, że wcale informacje o pobranych plikach nie są w ten sposób trwale usuwane z systemu. Ba! nawet wybranie trybu prywatnego (menu Plik -> Nowe okno prywatne) nie sprawi, że tajemnica będzie znana tylko nam.
Aby wyświetlić ukrytą historię ściągniętych z sieci rzeczy należy otworzyć aplikację Terminal a w niej wprowadzić i zatwierdzić klawiszem Enter, następujące wyrażenie:
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'select LSQuarantineDataURLString from LSQuarantineEvent'
Dodanie | sort (ta pionowa kreska to pipe) na końcu wiersza uporządkuje wyniki. Jeśli wyświetlone informacje nadal nas nie satysfakcjonują, możemy wyciągnąć z bazy dodatkowe dane, takie jak datę i porę pobrania plików. W tym celu należy użyć zmodyfikowanego polecenia (należy pamiętać, że całe wyrażenie stanowi jeden długi wiersz!):
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'select LSQuarantineTimeStamp, LSQuarantineDataURLString from LSQuarantineEvent' | php -r 'date_default_timezone_set("Europe/Warsaw"); foreach (explode("\n", file_get_contents("php://stdin")) as $l) { preg_match("/([0-9\\.]+)\\|(.*)\$/", $l, $re); echo date("Y-m-d H:i:s",strtotime("2001-01-01 01:00")+$re[1])."\t$re[2]\n"; }'
Prawda, że zatrważające? :)
A poważnie, to przydaje się gdy szukamy łącza to dawno pobranego pliku, a wcześniej z determinacją maniaka prywatności wyczyściliśmy skutecznie (jak widać, wcale nie) miejsca, zawierające takie informacje. Co więcej, dzięki tym informacjom możemy też sprawdzić czy nie ściągnęło się przy okazji coś, czego wcale na Maczku nie chcemy.
Oczywiście można bazę dokumentującą nasz download wyzerować. Wystarczy wpisać i zatwierdzić poniższe:
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'
W efekcie ponowne wywołanie wcześniejszych wyrażeń nie wyświetli żadnych wpisów. Jeśli zamierzacie skorzystać z takich porządków regularnie wystarczy stworzyć skrypt Automatora:
do shell script "sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'"
Historia pobrań działa w połączeniu chyba ze wszystkimi popularnymi przeglądarkami www (Safari, Chrome, Firefox), powinna również rejestrować aktywność większości innych programów, jak np. klienci FTP. Wyjątkami są tu App Store (MAS) oraz iTunes Store.
Być może aplikacje typy CleanMyMac potrafią również oczyścić czeluści systemu z takich danych, tego nie wiem – jeśli macie jakieś doświadczenia w tej materii, podzielcie się w komentarzach.
Skąd w ogóle ta historia pobrań? Otóż w OS X, od wersji Leopard, gdy pobierzemy plik z sieci przechodzi on przez tzw. menedżer kwarantanny. W przypadku ściągniętych programów na pewno nie raz ujrzeliście taki monit, proszący o podjęcie decyzji:
Powodem wyświetlenia tego okna jest zwrócenie uwagi użytkownika na bezpieczeństwo. Oczywiście można to zachowanie wyłączyć, jak się domyślacie znów dzięki użyciu Terminala:
defaults write com.apple.LaunchServices LSQuarantine -bool NO
Wystarczy wznowienie komputera, przelogowanie lub zresetowanie Findera i nowe preferencje zaczną obowiązywać. Zmiana „NO” na „YES” przywraca domyślne zachowanie.
Okazuje się jednak, że mimo wyłączenia mechanizmu pokazywania tego okna, każdy pobrany plik (program bądź dokument) jest rejestrowany w bazie i dopiero opisany wyżej sposób czyści historię definitywnie.