По какой-то причине, когда я пытаюсь сохранить файл (сгенерированный PHP под /www/appname/module
) - сохраняется под
/tmp/systemd-private-015eb2e9f67b4eef862c68e99fe0ba30-apache2.service-9h6i08
и при нацеливании файлов на сохранение в
/tmp/somename
файлы сохраняются в
/tmp/systemd-private-015eb2e9f67b4eef862c68e99fe0ba30-apache2.service-9h6i08/tmp/somename
.
Как отключить эту функцию и просто «регулярно» сохранять файлы в каталог / tmp?
В любом случае, какова цель этой функции по умолчанию?
Это параметр безопасности systemd, который создает частный временный каталог для конкретной службы.
В файле вашего модуля apache systemd будет параметр:
...
[Service]
ExecStart=...
PrivateTmp=yes
...
Этот вариант гарантирует, что /tmp
каталог, который будет видеть служба, является частным и изолированным от хост-системы /tmp
. /tmp
традиционно было общим пространством для всех местных служб и пользователей. На протяжении многих лет он был основным источником проблем с безопасностью для множества служб. Symlink-атаки и DoS-уязвимости из-за /tmp
временные файлы распространены. Изолируя сервисы /tmp
со стороны остальной части хоста такие уязвимости становятся спорными.
Источник: http://0pointer.de/blog/projects/security.html
Вы можете настроить несколько сервисов для совместного использования PrivateTmp
с участием JoinsNamespaceOf=
что может быть желательно для установки PrivateTmp=no