Jaka jest różnica między / tmp a / var / tmp?

Odpowiedzi:

115

/tmpma oznaczać szybkie (możliwie małe) przechowywanie o krótkim okresie użytkowania. Wiele systemów czyści /tmpbardzo szybko - w niektórych systemach jest nawet montowany jako dysk RAM. /var/tmpzwykle znajduje się na dysku fizycznym, jest większy i może przechowywać pliki tymczasowe przez dłuższy czas. Niektóre systemy również czyszczą /var/tmp, ale rzadziej.

Zauważ też, że /var/tmpmoże nie być dostępny we wczesnym procesie rozruchu, ponieważ /vari / lub /var/tmpmogą być punktami montowania. Jest to więc trochę porównywalne z różnicą między /bini /usr/bin. Pierwszy jest dostępny podczas wczesnego rozruchu - drugi po zamontowaniu przez system wszystkiego. Dlatego większość skryptów rozruchowych będzie używać, /tmpa nie /var/tmpplików tymczasowych.

Inną (nadchodzącą) lokalizacją w systemie Linux dla plików tymczasowych jest /dev/shm.

Nils
źródło
4
Uważam, że jest to trochę ironiczne /bini /usr/binobecnie są takie same (dowiązania symboliczne). ;-)
Felix Schwarz
2
@ Felix Jeszcze nie we wszystkich dystrybucjach. Ale Linux porusza się w ten sposób. Prawdopodobnie dlatego, że dyski stają się coraz większe.
Nils
27

/tmpmoże być, a czasem jest czyszczony przy ponownym uruchomieniu. /var/tmpjest zachowywany między restartami.

Zobacz artykuł w Wikipedii na temat FHS .

njsg
źródło
1
/ tmp może nawet wyczyścić pliki utworzone przez proces zaraz po jego zakończeniu!
osvein
15

Mają ten sam cel i funkcjonalność. Każda wersja UNIX / Linux będzie obsługiwać te katalogi inaczej. Historycznie, przed pojawieniem się systemów plików opartych na RAM / swap, istniały systemy bezdyskowe, w których systemy plików /i /usrbyłyby tylko do odczytu, a /var(zmienne) byłyby do odczytu i zapisu. /tmpNazwa będzie symboliczny link /var/tmp. Później systemy bezdyskowe przestały być stylowe, miejsce na dysku stało się tańsze (aby mieć większe systemy plików root) i dopuszczono technologię dla systemów plików montowanych z pamięci zamiast z dysku. /var/tmpKatalog wypadł z mody, ale jest nadal używany przez niektóre programy.

W dzisiejszych czasach większe zabezpieczenia są domyślnie włączone /tmp, podobnie jak g+s,+tuprawnienia, ale nie włączone /var/tmp. Ponadto /var/tmprzadko jest montowany z pamięci RAM lub wymiany.

Arcege
źródło
w moich systemach Debian i Fedora / tmp i / var / tmp mają ten sam tryb - a+rwx+t- i nie g+s.
sourcejedi
12

Podstawowe specyfikacje POSIX, wydanie 7 na / tmp :

Następujący katalog powinien istnieć w zgodnych systemach i powinien być używany zgodnie z opisem:

/ tmp

Katalog udostępniony aplikacjom, które potrzebują miejsca do tworzenia plików tymczasowych. Aplikacje będą mogły tworzyć pliki w tym katalogu, ale nie będą zakładały, że takie pliki są zachowywane między wywołaniami aplikacji.

File Hierarchy Standard 2.3 on / tmp :

Katalog / tmp musi zostać udostępniony programom wymagającym plików tymczasowych.

Programy nie mogą zakładać, że jakiekolwiek pliki lub katalogi w / tmp są zachowywane między wywołaniami programu.

Racjonalne uzasadnienie

Standard IEEE P1003.2 (POSIX, część 2) stawia wymagania, które są podobne do powyższej sekcji.

Chociaż dane przechowywane w / tmp mogą być usuwane w sposób specyficzny dla witryny, zaleca się, aby pliki i katalogi znajdujące się w / tmp były usuwane przy każdym uruchomieniu systemu.

FHS dodało to zalecenie na podstawie historycznej precedensu i powszechnej praktyki, ale nie uczyniło go wymogiem, ponieważ administracja systemem nie wchodzi w zakres tego standardu.

POSIX nie określa / var / tmp . FHS robi jednak :

Katalog / var / tmp jest udostępniany programom wymagającym plików tymczasowych lub katalogów, które są zachowywane między restartami systemu. Dlatego dane przechowywane w / var / tmp są bardziej trwałe niż dane w / tmp .

Pliki i katalogi znajdujące się w / var / tmp nie mogą być usuwane podczas uruchamiania systemu. Chociaż dane przechowywane w / var / tmp są zazwyczaj usuwane w sposób specyficzny dla witryny, zaleca się, aby usuwanie następowało rzadziej niż w / tmp .

osvein
źródło
Ahhh, uwielbiam dokumentację. Teraz wiem, że wiem i dlaczego wierzę, że to wiem. Moje potrzeby epistemologiczne są teraz tak zaspokojone.
Stephen C