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

apache2: сохраняет файлы в / tmp в виде 'system-private- [hash]' вместо того, чтобы просто сохранять папки, как определено в коде.

По какой-то причине, когда я пытаюсь сохранить файл (сгенерированный 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