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

Доступ к файлам в системном каталоге tmp при использовании PrivateTmp

Я использую php-fpm с включенным PrivateTmp. Мне нужно прочитать файл с PHP, который копируется агентом удаленного развертывания в /tmp каталог. Поскольку PrivateTmp включен, я не могу получить прямой доступ /tmp каталог.

Можно ли прочитать файл из системы /tmp папка, когда включен PrivateTmp? Я попытался создать символическую ссылку на /tmp в /var/temp и доступ к файлу через /var/temp, но это не сработало. /var/tmp в настоящее время привязка смонтирована из /tmp, и я также попытался получить доступ к файлу через /var/tmp безуспешно.

Прочтите руководство пожалуйста:

PrivateTmp=
Принимает логический аргумент. Если true, устанавливает новое пространство имен файловой системы для выполняемых процессов и монтирует частные /tmp и /var/tmp каталоги внутри него, которые не используются процессами за пределами пространства имен. Это полезно для защиты доступа к временным файлам процесса, но делает обмен между процессами через /tmp или /var/tmp невозможно.

Так что нет, вы не можете читать по всей системе /tmp/ каталог.

Но в том же разделе руководства есть обходной путь:

... Можно запустить два или более модулей в одном и том же пространстве имен private / tmp и / var / tmp, используя параметр JoinsNamespaceOf= директива, см. systemd.unit (5) для подробностей.

Таким образом, если ваш агент удаленного развертывания также работает из модуля systemd, вы можете объединить их в один общий PrivateTmp, который по-прежнему отделен от остальной системы.

Если вы не можете этого сделать: не храните файл в системе /tmp/ и просто поместите / переместите его в другое место ...