File-Permissions

apache2:將 /tmp 上的文件保存在 ‘system-private-哈哈___H一種sHhash’ 而不是只保存程式碼中定義的文件夾

  • May 14, 2018

出於某種原因,當我嘗試保存文件(由 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傳統上一直是所有本地服務和使用者的共享空間。多年來,它一直是眾多服務安全問題的主要來源。由於可猜測/tmp的臨時文件導致的符號連結攻擊和 DoS 漏洞很常見。通過將服務與主機的其他部分隔離開來/tmp,此類漏洞變得毫無意義。

來源:http: //0pointer.de/blog/projects/security.html

您可以配置多個服務以共享一個PrivateTmp可能JoinsNamespaceOf=需要設置的服務PrivateTmp=no

引用自:https://serverfault.com/questions/912094