Назад | Перейти на главную страницу

Как именно использовать функцию частного временного каталога systemd?

В Systemd есть замечательная функция - частный временный каталог (/tmp). Но из подробного руководства неясно, каковы правильные способы его использования и подводные камни реализации (почувствуйте, что руководство - это скорее спецификация для разработчиков и участников)

Включение этого параметра имеет побочный эффект в виде добавления зависимостей Requires = и After = для всех модулей монтирования, необходимых для доступа к / tmp и / var / tmp.

из https://www.freedesktop.org/software/systemd/man/systemd.exec.html#PrivateTmp=

Это немного загадочно для инсайдеров, не входящих в систему. Я предполагаю свою файловую систему, которая для простоты скажем, что у меня есть только /, получит Requires=, думаю, это оставлено как упражнение, чтобы выяснить, что для этого потребуется ... может, мне стоит поставить здесь тег домашнего задания? :)

Начиная с https://www.freedesktop.org/software/systemd/man/systemd.mount.html#x-systemd.requires=

Но это звучит неправильно. В нем говорится, что Requires = on mount используются только для иерархии. Я думаю.

Перейдем к https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Requires=

Но это тоже ничего не объясняет. Это только говорит о том, что одному устройству может потребоваться другой. Я думаю.

Я (дико) предполагаю, что он использует https://www.freedesktop.org/software/systemd/man/systemd.exec.html#ReadWritePaths= Итак, в моем примере монтирование модуля systemd для / будет Requires=[BindPaths=[/tmp/systemd-noise,/tmp]] или как же пишут что в systemd-говорят?

давай спросим systemd

# systemctl show httpd
...
Requires=system.slice sysinit.target -.mount tmp.mount
...
RequiresMountsFor=/tmp /var/tmp

Тоже не очень полезно.

В основном пытаюсь осознать:

1) как именно systemd запрещает доступ к актуальному /tmp в файловой системе. И

2) как процесс (скажем, cgi, запущенный из apache, запущенного systemd) может определить, где /tmp это есть доступ к?