Знали, что отдельной команде можно выдать собственные /tmp и /var/tmp, не создавая контейнер?
Для этого у systemd есть свойство PrivateTmp:
systemd-run --user --pipe \
-p PrivateTmp=yes \
bash
Запущенная оболочка получает отдельные временные каталоги. Файлы, созданные программой в /tmp и /var/tmp, не будут видны через обычные /tmp и /var/tmp хоста.
Это удобно при запуске сборок, тестов и сторонних инструментов, которые создают множество временных файлов:
systemd-run --user --pipe \
-p PrivateTmp=yes \
npm test
После завершения временного unit systemd освобождает связанное с ним приватное пространство временных файлов.
При этом это не полноценная песочница: PrivateTmp=yes изолирует именно /tmp и /var/tmp, а остальные доступные программе пути сам по себе не скрывает.
🔥 PrivateTmp позволяет одной командой изолировать временные файлы конкретной задачи без Docker и ручного создания mount namespace.
🚪 Linux Ready | #совет
Для этого у systemd есть свойство PrivateTmp:
systemd-run --user --pipe \
-p PrivateTmp=yes \
bash
Запущенная оболочка получает отдельные временные каталоги. Файлы, созданные программой в /tmp и /var/tmp, не будут видны через обычные /tmp и /var/tmp хоста.
Это удобно при запуске сборок, тестов и сторонних инструментов, которые создают множество временных файлов:
systemd-run --user --pipe \
-p PrivateTmp=yes \
npm test
После завершения временного unit systemd освобождает связанное с ним приватное пространство временных файлов.
При этом это не полноценная песочница: PrivateTmp=yes изолирует именно /tmp и /var/tmp, а остальные доступные программе пути сам по себе не скрывает.
🔥 PrivateTmp позволяет одной командой изолировать временные файлы конкретной задачи без Docker и ручного создания mount namespace.
🚪 Linux Ready | #совет