tmpfs w Linux – pamięć jako system plików, zastosowania i bezpieczeństwo
W systemach Linux nie każdy katalog musi znajdować się na fizycznym dysku. Istnieją specjalne systemy plików, które działają bezpośrednio w pamięci RAM.
Jednym z najważniejszych jest tmpfs.
Administratorzy wykorzystują go między innymi do:
- przyspieszania operacji tymczasowych,
- izolacji danych,
- zabezpieczania informacji wrażliwych,
- optymalizacji pracy serwerów,
- działania kontenerów.
Choć nazwa sugeruje tylko „tymczasowy katalog”, tmpfs jest znacznie bardziej zaawansowanym mechanizmem jądra Linux.
Czym jest tmpfs?
tmpfs (temporary filesystem) to system plików przechowujący dane w pamięci RAM oraz opcjonalnie w przestrzeni swap.
Najważniejsza cecha:
Dane zapisane w tmpfs nie trafiają standardowo na fizyczny dysk.
Schemat:
Aplikacja
↓
/tmp
↓
tmpfs
↓
RAM
↓
(opcjonalnie swap)
Po restarcie systemu zawartość tmpfs znika.
tmpfs a zwykły system plików
Klasyczny system plików:
Aplikacja
↓
Filesystem
↓
Dysk SSD/HDD
↓
Dane trwałe
tmpfs:
Aplikacja
↓
tmpfs
↓
RAM
↓
Dane tymczasowe
Gdzie Linux wykorzystuje tmpfs?
Współczesny Linux używa tmpfs bardzo często.
Typowe lokalizacje:
/run
/dev/shm
/tmp
Sprawdzenie:
mount | grep tmpfs
Przykład:
tmpfs on /run type tmpfs
tmpfs on /dev/shm type tmpfs
/run – dane runtime systemu
Katalog:
/run
zawiera dane potrzebne podczas działania systemu:
- PID plików,
- sockety,
- informacje usług systemd,
- blokady procesów.
Przykład:
/run/systemd/
/run/sshd/
/run/docker/
Po restarcie:
zawartość jest tworzona ponownie.
/dev/shm – pamięć współdzielona
/dev/shm jest używany przez mechanizmy IPC:
- shared memory,
- aplikacje wieloprocesowe,
- bazy danych.
Przykład:
Program A:
zapisuje dane
↓
/dev/shm
↓
Program B odczytuje
Jest bardzo szybki, ponieważ operuje w RAM.
tmpfs jako /tmp
Niektóre systemy konfigurują:
/tmp
jako tmpfs.
Zalety:
- szybkie operacje,
- automatyczne czyszczenie po restarcie,
- brak pozostawiania danych na dysku.
Wady:
- ograniczona ilość pamięci,
- dane znikają po restarcie.
Jak sprawdzić tmpfs?
Polecenie:
df -h
Przykład:
Filesystem Size Used Avail Mounted on
tmpfs 8G 50M 7.9G /run
Dokładniej:
findmnt -t tmpfs
Jak działa tmpfs od strony jądra?
tmpfs nie rezerwuje całej pamięci podczas montowania.
Przykład:
Montujemy:
mount -t tmpfs -o size=10G tmpfs /mnt/ram
Nie oznacza to:
„zabierz 10 GB RAM”.
Oznacza:
„maksymalny limit może wynieść 10 GB”.
Pamięć jest przydzielana dynamicznie:
Pusty tmpfs
0 MB RAM
↓
Zapis danych
↓
100 MB RAM
↓
Więcej danych
↓
1 GB RAM
Montowanie własnego tmpfs
Tworzymy katalog:
mkdir /mnt/ramdisk
Montujemy:
mount -t tmpfs tmpfs /mnt/ramdisk
Sprawdzenie:
df -h /mnt/ramdisk
Ograniczenie rozmiaru
Bardzo ważne na serwerach.
Przykład:
mount -t tmpfs \
-o size=512M \
tmpfs /mnt/ramdisk
Maksymalnie:
512 MB
Uprawnienia tmpfs
Przykład bezpiecznego montowania:
mount -t tmpfs \
-o size=256M,noexec,nosuid,nodev \
tmpfs /tmp
Co oznaczają opcje?
noexec
Blokuje wykonywanie programów.
Przykład:
./malware
nie uruchomi się.
nosuid
Ignoruje bit SUID.
Chroni przed eskalacją uprawnień.
nodev
Blokuje urządzenia znakowe i blokowe.
tmpfs i bezpieczeństwo
tmpfs często jest wykorzystywany jako element hardeningu.
Przykład:
Atakujący pobiera malware:
Internet
↓
/tmp/malware
Jeżeli:
/tmp = tmpfs
+
noexec
utrudniamy wykonanie pliku.

tmpfs w kontenerach Docker
Kontenery często używają tmpfs.
Przykład:
docker run \
--tmpfs /run \
nginx
Efekt:
Kontener
/run
↓
RAM
Zastosowania:
- dane tymczasowe,
- sekrety,
- cache,
- sockety.
tmpfs i Kubernetes
Kubernetes wykorzystuje tmpfs przez:
emptyDir:
medium: Memory
Przykład:
volumes:
- name: cache
emptyDir:
medium: Memory
Dane istnieją tylko w pamięci.
tmpfs a bezpieczeństwo sekretów
Dobrym zastosowaniem jest przechowywanie:
- kluczy tymczasowych,
- tokenów,
- certyfikatów runtime.
Przykład:
Aplikacja
↓
tmpfs
↓
klucz prywatny
↓
restart
↓
usunięty
tmpfs vs ramfs
Często mylone rozwiązania.
| Cecha | tmpfs | ramfs |
|---|---|---|
| RAM | Tak | Tak |
| Limit rozmiaru | Tak | Nie |
| Swap | Może używać | Nie |
| Bezpieczeństwo | Lepsze | Ryzyko OOM |
| Zalecane | Tak | Rzadko |
tmpfs vs dysk SSD
| Cecha | tmpfs | SSD |
|---|---|---|
| Prędkość | Bardzo wysoka | Wysoka |
| Trwałość | Brak | Tak |
| Restart | Dane znikają | Dane zostają |
| RAM potrzebny | Tak | Nie |
| Zastosowanie | Dane tymczasowe | Dane produkcyjne |
Najczęstsze błędy administratorów
1. Brak limitu rozmiaru
Źle:
mount -t tmpfs tmpfs /tmp
Może pozwolić na zużycie dużej ilości pamięci.
Lepiej:
-o size=1G
2. Trzymanie danych trwałych
tmpfs nie nadaje się do:
- baz danych,
- dokumentów,
- backupów.
Po restarcie:
dane znikają.
3. Zapomnienie o RAM
Duży cache w tmpfs może doprowadzić do:
- presji pamięci,
- użycia swap,
- spadku wydajności.
Monitoring tmpfs
Sprawdzenie zużycia:
df -h
Pamięć:
free -h
Procesy:
top
Praktyczne zastosowania administratora
Serwer WWW
/tmp
↓
tmpfs + noexec
Ogranicza ryzyko wykorzystania katalogów tymczasowych.
Serwer baz danych
/dev/shm
↓
shared memory
Poprawia komunikację między procesami.
Kontenery
Secrets
↓
tmpfs
↓
kontener
Systemy bezpieczeństwa
Tymczasowe dane:
- tokeny,
- klucze,
- pliki sesji.
tmpfs i systemd
systemd wykorzystuje tmpfs bardzo intensywnie.
Przykład:
/run
↓
systemd runtime
↓
usługi
Jeżeli /run jest niedostępny, wiele usług systemowych przestanie działać.
Podsumowanie
tmpfs jest jednym z najważniejszych, ale często niedocenianych mechanizmów Linux.
Pozwala traktować pamięć RAM jak szybki system plików i znajduje zastosowanie w:
- systemd,
- kontenerach,
- Kubernetes,
- bezpieczeństwie serwerów,
- optymalizacji wydajności.
W połączeniu z innymi mechanizmami:
- namespaces,
- cgroups v2,
- Seccomp,
- AppArmor/SELinux,
- nftables,
- auditd,
- journald,
tworzy fundament nowoczesnej administracji Linux.
Dla administratora bezpieczeństwa tmpfs jest szczególnie ciekawy, ponieważ pozwala ograniczyć trwałość danych i zmniejszyć ryzyko pozostawienia wrażliwych informacji na dysku.






