В чем разница между / tmp и / var / tmp?

136

В большинстве систем FHS есть /tmpпапка и /var/tmpпапка. Какая функциональная разница между ними?

Wesley
источник
2
Вот аналогичный вопрос о
сбое

Ответы:

114

/tmpподразумевается как быстрое (возможно, небольшое) хранилище с коротким сроком службы. Многие системы очищаются /tmpочень быстро - на некоторых системах он даже монтируется как RAM-диск. /var/tmpобычно располагается на физическом диске, имеет больший размер и может хранить временные файлы в течение более длительного времени. Некоторые системы тоже чистые /var/tmp, но реже.

Также обратите внимание, что они /var/tmpмогут быть недоступны в начале процесса загрузки, так как /varи / или /var/tmpмогут быть точками монтирования. Таким образом, это немного сравнимо с разницей между /binи /usr/bin. Первый доступен во время ранней загрузки - последний после того, как система смонтировала все. Так что большинство загрузочных скриптов будут использовать, /tmpа не /var/tmpдля временных файлов.

Еще одно (предстоящее) размещение в Linux для временных файлов /dev/shm.

Nils
источник
4
Я нахожу это немного ироничным, /binи /usr/binна самом деле это одно и то же (символические ссылки). ;-)
Феликс Шварц
2
@Felix Еще не во всех дистрибутивах. Но Linux движется в этом направлении. Вероятно, потому что диски становятся все больше и больше.
Нильс
26

/tmpможет быть, а иногда и чистится при перезагрузке. /var/tmpсохраняется между перезагрузками.

Смотрите статью в Википедии о FHS .

njsg
источник
1
/ tmp может даже очистить файлы, созданные процессом сразу после его выхода!
Osvein
15

Они имеют одинаковое назначение и функциональность. Каждая версия UNIX / Linux будет обрабатывать эти каталоги по-разному. Исторически, до появления файловых систем на основе RAM / замены, вы имели диск меньше системы , где /и /usrфайловые системы будут только для чтения и /var(переменная) будет чтение-запись. /tmpИмя будет символической ссылкой /var/tmp. Позже бездисковые системы вышли из моды, дисковое пространство стало дешевле (иметь большие корневые файловые системы), а технология позволяла файловым системам монтироваться из памяти вместо диска. /var/tmpКаталог выпал из стиля, но до сих пор используется некоторыми программами.

В настоящее время по умолчанию /tmp, например, g+s,+tразрешения , больше безопасности установлено , но не включено /var/tmp. Кроме того, /var/tmpредко монтируется из оперативной памяти или подкачки.

Arcege
источник
в моих системах debian и fedora / tmp и / var / tmp имеют одинаковый режим a+rwx+t- и нет g+s.
sourcejedi
12

Базовые спецификации POSIX, выпуск 7 в / tmp :

Следующий каталог должен существовать в соответствующих системах и должен использоваться как описано:

/ TMP

Каталог, доступный для приложений, которым требуется место для создания временных файлов. Приложениям разрешается создавать файлы в этом каталоге, но не следует предполагать, что такие файлы сохраняются между вызовами приложения.

Стандарт файловой иерархии 2.3 на / tmp :

/ TMP каталог должен быть доступен для программ , которые требуют временных файлов.

Программы не должны предполагать, что какие-либо файлы или каталоги в / tmp сохраняются между вызовами программы.

обоснование

Стандарт IEEE P1003.2 (POSIX, часть 2) предъявляет требования, аналогичные приведенному выше разделу.

Хотя данные, хранящиеся в / tmp, могут быть удалены специфичным для сайта способом, рекомендуется удалять файлы и каталоги, расположенные в / tmp, всякий раз, когда загружается система.

FHS добавил эту рекомендацию на основе исторического прецедента и общепринятой практики, но не сделал ее обязательным требованием, поскольку системное администрирование не входит в сферу применения этого стандарта.

POSIX не указывает / var / tmp . FHS хотя :

/ Вар / TMP каталог доступен для программ , которым требуется временные файлы или каталоги , которые должны сохраняться между перезагрузками системы. Поэтому данные, хранящиеся в / var / tmp , более постоянны, чем данные в / tmp .

Файлы и каталоги, расположенные в / var / tmp, не должны удаляться при загрузке системы. Хотя данные, хранящиеся в / var / tmp , обычно удаляются в зависимости от сайта, рекомендуется, чтобы удаление происходило с меньшим интервалом, чем / tmp .

osvein
источник
Аааа, я люблю документацию. Теперь я знаю, что знаю, и почему я верю, что знаю это. Мои эпистемологические потребности сейчас так удовлетворены.
Стивен C