Montowanie katalogu /tmp/ jako tmpfs

Spis treści

Linux jest w stanie operować na wielu systemach plików, np. ext4, ntfs, fat. Większość z nich odnosi się do dysków twardych, czy też innych urządzeń przechowujących spore ilości danych. Problem z tego typu systemami plików jest taki, że operacje na plikach w ich obrębie, jak i same pliki, zostawiają ślady. Dlatego też jeśli musimy tymczasowo skopiować plik zawierający tajne dane, lub też taki plik poddać obróbce, nie powinniśmy go umieszczać bezpośrednio na dysku. No chyba, że wykorzystujemy pełne szyfrowanie. Inną opcją (i o wiele prostszą w implementacji) jest przeznaczenie części pamięci operacyjnej RAM pod system plików tmpfs i o tym będzie ten wpis.

Zalety stosowania tmpfs

W przypadku gdy posiadamy dość spore zasoby pamięci RAM, prawdopodobnie bardzo rzadko, o ile w ogóle, jesteśmy w stanie je wykorzystać w pełni podczas codziennej pracy na komputerze. Wszyscy jednak wiemy, że pamięć operacyjna jest paręset razy szybsza od dysku. Zatem dlaczego nie przenieść części operacji do pamięci? Nie tylko poprawi to wydajność przeprowadzanych tam operacji ale także odciąży nieco dysk, na który tak zwykliśmy narzekać.

Nas jednak tutaj będzie raczej interesować kwestia bezpieczeństwa i poufności danych. W systemie możemy posiadać całą masę newralgicznych plików, które zwykle są przechowywane w formie szyfrowanej na dysku. Przykładem mogą być różnego rodzaju keyring'i z hasłami. Czasem jednak potrzebujemy wydobyć określone dane i dokonać na nich pewnych operacji. Wydobycie haseł, plików kluczy, czy też kluczy szyfrujących zwykle równoznaczne jest z ich zapisaniem gdzieś na dysku, a ten nie zawsze jest szyfrowany. Wobec czego, te wszystkie poufne informacje zostają ujawnione i ktoś może do nich uzyskać dostęp.

Oczywiście, można taki plik usunąć z dysku po tym jak skończymy się nim bawić ale ta czynność nie usuwa pliku jako takiego, a jedynie jego link (i-węzeł), za pomocą którego jesteśmy w stanie odnaleźć plik w systemie plików. Odzyskanie takiego pliku nie powinno sprawić większego problemu rozmaitym aplikacjom czy firmom, które się w tym specjalizują. No chyba, że taki plik zostanie nadpisany, np. przy pomocy narzędzia shred .

Katalog /tmp/ na bazie tmpfs

W katalogu /tmp/ są przechowywane pliki tymczasowe, a te z kolei są produktem różnego rodzaju aplikacji. W tym katalogu mogą zatem znaleźć się rozmaite dane i niewykluczone, że zawierające informacje, którymi nie chcielibyśmy się z nikim dzielić. Pliki tymczasowe, jak sama nazwa wskazuje, są tymczasowe, dlatego też, w przypadku linux'ów, ten katalog jest czyszczony przy każdym starcie systemu. Nic zatem nie stoi na przeszkodzie, by zamontować go w pamięci operacyjnej, gdzie dane też będą automatycznie kasowane przy restarcie/wyłączeniu maszyny ze względu na specyfikację pamięci.

Obecnie systemd zajmuje się montowaniem katalogu /tmp/ w pamięci operacyjnej i nie musimy przeprowadzać poniższych czynności. W przypadku systemd, rozmiar takiego katalogu jest zawsze wyznaczany w oparciu o ilość dostępnej w systemie pamięci i jest to 50%, czyli przy 8 GiB pamięci, katalog /tmp/ będzie miał rozmiar 4 GiB.

Jeśli mamy wydzieloną osobną partycję pod katalog /tmp/ , to będziemy musieli z niej zrezygnować i zakomentować odpowiedni wpis w pliku /etc/fstab . Montowanie katalogu /tmp/ jako tmpfs w pamięci RAM również przeprowadzamy za pomocą powyższego pliku, a konkretnie, to musimy dopisać do niego tę poniższą linijkę:

tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0

Parametr size określa rozmiar pamięci, którą taki katalog będzie mógł wykorzystać. Nie jest to sztywne przypisanie, tj. w przypadku gdy mamy 8 GiB pamięci i system chciałby wykorzystać 7 GiB, to bez problemu będzie w stanie to zrobić. Po zapisaniu pliku, wymagany jest restart maszyny.

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.