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

Отключить пространства имен монтирования в Apache / PHP-FPM

Для веб-интерфейса для управления точками монтирования NFS мы столкнулись с проблема после перехода на Centos 8.

JS Billings отметил, что:

CentOS8 запускает httpd в частном пространстве имен (с собственным частным / tmp). Поскольку дать httpd возможность запускать sudo - ужасная идея, я никогда не пробовал этого, но подозреваю, что вы видите то, что монтирование происходит в частном пространстве имен.

Эффект в том, что бег mount(8) через system() или даже setuid программа, которая вызывает mount(2) для монтирования разделов NFS эти разделы видны только для последующих HTTP-вызовов, а не для любых процессов, запущенных на самом сервере.

Есть ли способ настроить apache и / или php-fpm не использовать пространства имен монтирования?

ИЗМЕНИТЬ I

По совету Майкла Хэмптона, меняя /etc/systemd/system/php-fpm.service отключить PrivateTmp решил проблему:

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=notify
ExecStart=/usr/sbin/php-fpm --nodaemonize
ExecReload=/bin/kill -USR2 $MAINPID

# Disable private mount namespace
PrivateTmp=false
RuntimeDirectory=php-fpm
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

Вы можете выключить PrivateTmp= в твоем php-fpm.service чтобы предотвратить получение собственного пространства имен монтирования. Это, конечно, имеет последствия для безопасности, поэтому вы можете проверить использование в коде временных файлов.