Apache-2.4
在 Apache/PHP-FPM 中禁用掛載命名空間
對於管理 NFS 掛載點的 Web GUI,我們在遷移到 Centos 8 後遇到了問題。
JS 比林斯指出:
CentOS8 在私有命名空間中執行 httpd(有自己私有的 /tmp)。由於讓 httpd 能夠執行 sudo 是一個非常糟糕的主意,因此我從未嘗試過,但我懷疑您所看到的事實是掛載發生在私有命名空間中
效果是
mount(8)
通過呼叫掛載 NFS 分區system()
的程序或什至程序執行,分區僅對後續 HTTP 呼叫可見,而不對伺服器本身上執行的任何程序可見。setuid``mount(2)
有沒有辦法配置
apache
和/或php-fpm
不使用掛載命名空間?
- Centos 8 核心 4.18.0-147.el8.x86_64
- SELinux 被禁用
- Apache/2.4.37 (centos)
- PHP 7.2.11
編輯我
根據邁克爾漢普頓的建議,更改
/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=
您可以在 your中關閉php-fpm.service
以防止它獲得自己的掛載命名空間。當然,這具有安全隱患,因此您可能希望查看程式碼對臨時文件的使用。