Ostatnio używane pliki (recently-used.xbel)

Spis treści

Wielu ludzi nie lubi gdy maszyny monitorują każdy ich krok. W tym przypadku chodzi o pliki, które otwieramy czy zmieniamy podczas codziennej pracy na komputerze. Nasz system domyślnie tworzy listę i skrupulatnie dodaje do niej nowe pozycje. Ta lista jest przechowywana w pliku recently-used.xbel , który znajduje się w katalogu ~/.local/share/ . Gdy popatrzymy na tę funkcjonalność trochę pod inny kątem, możemy zauważyć, że w pewnych sytuacjach zagraża ona naszej prywatności. Skasowanie tego pliku nie rozwiązuje problemu, bo jest on tworzony na nowo, a nadawanie atrybutu odporności ( chattr +i ) nie jest żadnym rozwiązaniem. Na szczęście jest sposób na to by ten mechanizm dezaktywować i o tym będzie poniższy wpis.

Prywatność czy paranoja?

Listę dostępnych w systemie plików można bez problemu wyciągnąć. Zatem po co usuwać te pozycje, które trafiają do pliku recently-used.xbel ? Powodów jest kilka. Przede wszystkim nie o wszystkich plikach w systemie możemy wiedzieć i pomijam oczywiście te, do których nie mamy odpowiednich uprawnień. Chodzi mi o te pliki, które są umieszczone w kontenerze TrueCrypt czy LUKS. Jeśli w pliku recently-used.xbel znajdą się ścieżki do nieistniejącej partycji w systemie, może to doprowadzić do ujawnienia kontenera. Niekoniecznie możemy od razu poznać jego położenie w drzewie katalogów ale nie powinno to stanowić większego problemu, przecie kontenery mają z reguły parę GiB.

Poza ujawnieniem zaszyfrowanych kontenerów, musimy także liczyć się z metadanymi o plikach, które otwieramy. Za pomocą listy otwieranych plików możemy pozyskać nazwę pliku, datę jego edycji, czy też i rozmiar. Do tego dochodzi jeszcze rozszerzenie danego pliku. Zatem możemy określić czy jest to plik tekstowy, graficzny, a może materiał video. Czasem te dane mogą nam wiele powiedzieć o tym co znajduje się w pliku i nawet nie musimy do niego zaglądać.

GTK2, GTK3 i plik recently-used.xbel

Środowiska graficzne zwykły wykorzystywać plik recently-used.xbel i umieszczać z nim te wszystkie metadane, o których wspomniałem wyżej. Wobec czego, menadżery plików, edytory graficzne, przeglądarki obrazków, czy playery audio/video są w stanie skorzystać z tych informacji i ułatwić nam nieco życie. By wyjaśnić jak działa ten mechanizm, musimy posłużyć się przykładem. Otwórzmy w swoim ulubionym graficznym edytorze tekstu jakiś plik. Następnie go zamknijmy. Ponownie odpalmy edytor, z tym, że tym razem nie otwierajmy żadnego pliku. Następnie w menu wybierzmy File -> Open. Jest tam pozycja Recently Used . Po przejściu do niej, powinniśmy być w stanie uzyskać listę plików, które ostatnio otwieraliśmy w tym edytorze. U mnie wygląda to tak:

recently-used-xbel-geany

Co w przypadku, gdy posiadamy w systemie pliki, które nie powinny być umieszczane na takiej liście? Każda aplikacja graficzna posiadająca interfejs GTK2/GTK3 jest w stanie dodawać do pliku recently-used.xbel pozycje i tym samym kompromitować poufność danych. Możemy jednak sprawić by tego nie robiły poprzez zmianę globalnej konfiguracji dla stylów GTK.

Interfejs graficzny jest nam prezentowany w pewien określony sposób. Wygląd tego interfejsu zależy od wybranego stylu, a to może określić sobie każdy użytkownik przy pomocy, np. lxappearance . Większość z tego typu narzędzi oferuje jedynie podstawową konfigurację. Mamy jednak możliwość ręcznej edycji plików ~/.gtkrc-2.0 oraz ~/.config/gtk-3.0/settings.ini , przez co możemy nakazać aplikacjom GTK by zachowywały się w pewien określony sposób.

Aplikacje GTK2

By nakazać aplikacjom GTK2, by nie zapisywały pliku recently-used.xbel , dopisujemy ten poniższy kod do pliku ~/.gtkrc-2.0 :

gtk-recent-files-max-age=0

Aplikacje GTK3

W przypadku aplikacji GTK3 dopisujemy te dwie linijki do pliku ~/.config/gtk-3.0/settings.ini :

gtk-recent-files-max-age=0
gtk-recent-files-limit=0

Kompromis

W obu powyższych przypadkach możemy pójść na kompromis i nieco poluzować politykę prywatności. Wartość parametru gtk-recent-files-max-age oznacza liczbę dni. Zatem jeśli ustawimy tutaj 2 , to wpisy w pliku recently-used.xbel będą trzymane jedynie przez dwa dni, co jest w miarę przyzwoitym okresem czasu. Z kolei jeśli chodzi o parametr gtk-recent-files-limit , to określa on ile wpisów plik recently-used.xbel może zawierać maksymalnie.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.