LINUX.ORG.RU

Debian переходит к использованию tmpfs в /tmp и к очистке /tmp и /var/tmp по таймеру

 , , , ,


1

5

Разработчик Debian Лука Боккасси анонсировал переход Debian к использованию tmpfs в /tmp и к очистке /tmp и /var/tmp по таймеру по умолчанию, начиная с Debian 13 “Trixie”.

В новых системах файлы в /tmp будут либо исчезать вместе с прежним экземпляром tmpfs в памяти после рестарта, либо будут удаляться ежедневно по таймеру, если они старше 10 дней, а файлы в /var/tmp будут удаляться только ежедневно по таймеру, если они старше 30 дней. Пакеты openssh и tmux были модифицированы с целью сохранения своих временных файлов в /var/tmp в качестве исключения. В системах, которые будут обновляться до Debian 13 “Trixie”, старое поведение /var/tmp сохранится.

В то время, как в большинстве других дистрибутивов давно перешли на использование tmpfs в /tmp, в Debian не спешили этого делать. Сейчас разработчики Debian (Michael Biebl и Luca Boccassi) возобновили одну из таких дискуссий 2020 года, в которой разработчик из Canonical (Eric Desrochers) пожаловался на проблему несоответствия тогдашней реализации /var/tmp в Debian тому, как работает systemd, несмотря на то, что патч был опубликован ещё в 2012 году. Таким образом, было принято решение привести поведение системы при работе с этими директориями к общепринятому в systemd и в большинстве других дистрибутивов.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: Virtuos86 (всего исправлений: 7)

Не очень понятно, перешли на systemd что ли ? Или как ? Может им доки почитать для начала и узнать что systemd есть встроенный cron называемый тут timer ?

Глянул тут у себя, забыл уже как давно все это настраивал :(

 [Timer]
 OnCalendar=daily
 Persisternt=true
 OnBootSec=15min
mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

Не очень понятно, перешли на systemd что ли ? Или как ? Может им доки почитать для начала и узнать что systemd есть встроенный cron называемый тут timer ?

Возможно это я неправильно прочитал. Про cron там не сказано, сейчас исправлю.

zg
() автор топика
Ответ на: комментарий от zg

эээ, извините но Вы там поосторожнее с правками то. Я по ссылке не ходил, просто прочитал новость на ЛОРе ;)

mx__ ★★★★★
()

А на что это повлияет? Я правильно ли понимаю, что хранение чего-либо в /tmp и /var/tmp априори считается ненадёжным. То есть никакая программа не должна рассчитывать на сохранность данных хранимых там сколь-нибудь продолжительное время.

Camel ★★★★★
()

«исчезать вместЕ с прежним».

S_Paul ★★★★★
()
Ответ на: комментарий от mx__

systemd есть встроенный бэкдор АНБ наравне с командой sudo для «проходной» двери в linux других юзеров спецслужбам, эх, как жаль что Gentoo стала использовать Rust, хорошая же была ос

FSBinyourx86
()
Ответ на: комментарий от Camel

То есть никакая программа не должна рассчитывать на сохранность данных хранимых там сколь-нибудь продолжительное время.

Ага, вот только тот же systemd срет туда данные своих сервисов.

$ ls -la /tmp | grep systemd
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-bolt.service-YzQGmh
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-colord.service-1c6hqj
drwx------  3 root root      4096 мая 27 13:17 systemd-private-220ba69094964cefbaa73ef32259c26e-fwupd.service-9Oqcej
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-ModemManager.service-1zgQri
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-systemd-logind.service-olJVCh
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-systemd-resolved.service-FQewoj
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-systemd-timesyncd.service-gNernf
drwx------  3 root root      4096 мая 26 22:46 systemd-private-220ba69094964cefbaa73ef32259c26e-upower.service-DDWhGh

PPP328 ★★★★★
()
Последнее исправление: PPP328 (всего исправлений: 1)

Удалять файлы полнейшая глупость. И то, что им приходится патчить существующие программы тому ярчайшее подтверждение.

А в каких еще дистрах такое есть?

по таймеру по умолчанию

Мне одному кажется, что это противоречит сути /var/tmp?

как работает systemd

Аа... теперь понятно.

urxvt ★★★★★
()
Ответ на: комментарий от intelfx

Где это написано? Стандарт говорит, что это надежное хранилище в контексте времени работы программы. Программа может работать хоть месяц, хоть год.

urxvt ★★★★★
()

Есть hier(7), но systemd тащит еще свой file-hierarchy(7).

Очередное подтверждение, что systemd это отдельная OC, почти как GNU, без ядра пока.

urxvt ★★★★★
()
Ответ на: комментарий от FSBinyourx86

systemd есть встроенный бэкдор АНБ наравне с командой sudo…

А почему sudo бэкдор?

SomeV
()
Ответ на: комментарий от PPP328

Ага, вот только тот же systemd срет туда данные своих сервисов.

Во-первых, не своих, а любых. Во-вторых, это не данные, а корни «виртуального /tmp» для PrivateTmp-юнитов.

В-третьих, для них уже сделано исключение: https://github.com/systemd/systemd/blob/main/tmpfiles.d/systemd-tmp.conf#L10-L18

TL;DR: ты не умнее разработчиков systemd, успокойся :-)

intelfx ★★★★★
()
Ответ на: комментарий от urxvt

Не-а. Стандарт говорит лишь то, что это НЕнадёжное хранилище в контексте более чем одного запуска программы.

Из !A -> !B не следует, что A -> B. Учим логику.

intelfx ★★★★★
()

@zg> Пакеты openssh и tmux были модифицированы с целью сохранения своих временных файлов в /var/tmp в качестве исключения.

@intelfx> для них уже сделано исключение: https://github.com/systemd/systemd/blob/main/tmpfiles.d/systemd-tmp.conf#L10-L18

А можно не делать исключения а просто соответствовать стандарту.

Gentooshnik ★★★★★
()

Из этой новости я узнал, что них /tmp до сих пор не в tmpfs было по умолчанию.

очистке /tmp и /var/tmp по таймеру

А вот это, мне кажется, зря… А что если таймер запустится ровно тогда, когда там лежит файл, который нужен вот прям сейчас (а через минуту уже не будет нужен, и программа его бы сама удалила)?

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от intelfx

Тут вопрос как раз к программам которые складывают в /tmp файлы которые должны быть «preserved between invocations of the program». Т.е. моё «соответствовать стандарту» - значит не складывать эти файлы ни в /tmp, ни в /var/tmp.

Gentooshnik ★★★★★
()
Ответ на: комментарий от urxvt

Насколько я могу судить, содержимое file-hierarchy(7) не противоречит содержимому hier(7) в части /tmp и /var/tmp. И периодическое удаление файлов не запрещено в hier(7) (ну и в https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index тоже).

TeopeTuK ★★★★★
()
Ответ на: комментарий от intelfx

Всё отлично соответствует всем стандартам.

Зачем тогда эти костыли с сохранением файлов которые по стандарту могут быть внезапно удалены?

Gentooshnik ★★★★★
()
Ответ на: комментарий от intelfx

atime

Пользователи SSD с noatime: «ну да, ну да, пошли мы нахрен».

А монтирование /tmp на tmpfs – отличный способ просрать кучу памяти за зря.

hateyoufeel ★★★★★
()
Ответ на: комментарий от Gentooshnik

Чтобы не было лишних ошибок, т. к. это точки монтирования и при попытке их удаления ты получишь EBUSY.

intelfx ★★★★★
()
Ответ на: комментарий от Gentooshnik

А, чёртов Русский Язык.

@Gentooshnik > Тут вопрос как раз к программам которые складывают в /tmp файлы которые должны быть «preserved between invocations of the program».

У программы есть файлы которые должны быть «preserved between invocations of the program». Программа зачем-то складывает их в /tmp хотя файлы там могут быть внезапно удалены.

Gentooshnik ★★★★★
()
Ответ на: комментарий от intelfx

Сам поймёшь, где обосрался, или тебе явно показать? :-)

@intelfx не может не думать о говне даже минуту.

Я прямо написал, что atime проверять плохая идея, потому что многие монтируют /tmp как диск, а не как tmpfs, и там atime будет выключен. У тебя, похоже, глаза твоей любимой субстанцией заплыли. Да, даже в Debian так делают.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от intelfx

Новость не читай сразу отвечай ;)

Увидел, что там условие, что если они старше 10 и 30 дней соответственно. Тогда норм.

Хотя и не очень понятно, зачем это надо. У кого-то в /var/tmp так много хлама что ли? У меня просто…

sudo du -hs /var/tmp 
60K	/var/tmp
CrX ★★★★★
()
Ответ на: комментарий от Gentooshnik

Извиняйте, прочитал по диагонали.

Если программа требует, чтобы файлы были preserved between invocations of the program — она не должна пользоваться {,/var}/tmp.

/tmp — для временных файлов[1]. То есть любая программа, складывающая туда что угодно, должна быть априори готова к тому, что этих файлов может в любой момент не оказаться.

[1]: В стандарте в любом случае написано, что data stored in /tmp may be deleted in a site-specific manner.

intelfx ★★★★★
()
Ответ на: комментарий от urxvt

systemd, конечно, много чего тащит, и с основным посылом я согласен, но где в сабже противоречие с hier(7)?

CrX ★★★★★
()
Ответ на: комментарий от hateyoufeel

intelfx не может не думать о говне даже минуту.

Не, я просто подстраиваюсь под уровень и лексикон собеседника.

Я прямо написал, что atime проверять плохая идея, потому что многие монтируют /tmp как диск, а не как tmpfs, и там atime будет выключен

Ну это их проблемы. Проверка atime в любом случае не является несущей конструкцией.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

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

Нет, не должна. Это нигде не прописано. Временные — не значит рандомно исчезающие. Между запусками программы файлы могут чиститься, и она не должна ожидать там хоть чего-то при запуске. Но во время своей работы, если она создала там файл, ожидать, что он внезапно сразу же пропадёт — это очень странное требование, никто на такое не рассчитывает.

Но поскольку там atime берётся в рассчёт, это не проблема.

CrX ★★★★★
()
Ответ на: комментарий от intelfx

для них уже сделано исключение

Ну то есть они сделали один костыль, нарушающий общепринятый стандарт, а потом сделали костыль, чтобы не сломать самого себя.

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328
  1. покажи нарушение общепринятого стандарта
  2. исключение не для того, чтобы не сломать самого себя, а для того, чтобы не было лишних EBUSY
intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Не, я просто подстраиваюсь под уровень и лексикон собеседника.

Какого именно? Потому что о говне тут пишешь только ты.

Ну это их проблемы.

Да. И если софт создаёт проблемы для пользователя, это крайне убогий софт. Я согласен с @CrX по этому поводу. Удаление файлов во время работы программы – крайне плохая идея.

hateyoufeel ★★★★★
()
Ответ на: комментарий от intelfx

в контексте более чем одного запуска программы.

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

PPP328 ★★★★★
()
Ответ на: комментарий от hateyoufeel

Какого именно?

Тебя.

Удаление файлов во время работы программы – крайне плохая идея.

Есть хотя бы один реальный пример такого удаления, которое что-то ломает? Потому что очистка старых файлов в /tmp по крону — практика, восходящая ещё к солярке.

В systemd по этому поводу даже больше предосторожностей, чем было исторически (проверка всех трёх временных отметок; flock).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от PPP328

Да, и ты должен быть к этому готов, потому что в FHS написано, что data stored in /tmp may be deleted in a site-specific manner. Если ты к этому не готов — не пользуйся /tmp.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

[1]: В стандарте в любом случае написано, что data stored in /tmp may be deleted in a site-specific manner.

Ой,а не вы ли N минут назад мне скинули ссылку, где systemd для себя любимой делает исключение?

PPP328 ★★★★★
()
Ответ на: комментарий от intelfx

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

u5er
()

Неужели это заслуживает новости, тем более не мини?..

ЕМНИП, раньше не переходили, т.к. всякие там Firefox любили складывать в /tmp скачиваемые файлы, которые тупо не поместятся в tmpfs, но вроде как большинство программ уже отучили.

Rootlexx ★★★★★
()
Ответ на: комментарий от intelfx

Тебя.

Я тебе о говнах не пишу. У тебя точно глаза залепило.

Есть хотя бы один реальный пример такого удаления, которое что-то ломает?

Прямо в новости написано, что openssh и tmux пришлось патчить. Наверняка есть другой софт, который тоже надо патчить, но не запатчили.

Вообще, systemd любят ломать всё подряд. Вспомни хотя бы убийство фоновых tmux и screen при завершении сеанса юзера.

Потому что очистка старых файлов в /tmp по крону — практика, восходящая ещё к солярке.

И где сейчас эта солярка? Вот именно.

hateyoufeel ★★★★★
()
Ответ на: комментарий от intelfx

Если понимать буквально, это означает, что можно вообще прям при записи отправлять в /dev/null. А что, вполне site-specific manner. Только помимо стандартов есть всё же какой-то здравый смысл, и большинство программ не будет ожидать, что файл был удалён через секунду после создания, иначе любое использование /tmp полностью теряет свой смысл, кроме как для кэша (а для него вообще-то ~/.cache есть).

Но опять же, сабж — это адекватная реализация, поскольку новые файлы не удаляются, только старые.

CrX ★★★★★
()
Ответ на: комментарий от hateyoufeel

Прямо в новости написано, что openssh и tmux пришлось патчить. Наверняка есть другой софт, который тоже надо патчить, но не запатчили.

Это не имеет никакого отношения к новости, т. к. в обоих случаях речь идёт о сокетах, которые в любом случае невалидны между перезапусками системы. А очистка /tmp по таймеру — практика, предшествующая И сабжевой новости, И даже systemd.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.