Systemd
使用 PrivateTmp 時訪問系統 tmp 目錄中的文件
我在
php-fpm
啟用 PrivateTmp 的情況下使用。我必須從 PHP 中讀取一個文件,該文件由遠端部署代理複製到/tmp
目錄中。由於啟用了 PrivateTmp,我無法直接訪問/tmp
目錄。
/tmp
啟用 PrivateTmp 後是否可以從系統文件夾中讀取文件?我嘗試創建指向/tmp
at的符號連結/var/temp
並通過 訪問文件/var/temp
,但它不起作用。/var/tmp
目前是從 綁定安裝的/tmp
,我也嘗試通過訪問該文件/var/tmp
但沒有任何成功。
請閱讀手冊 :
PrivateTmp=
接受一個布爾參數。如果為 true,則為已執行的程序設置一個新的文件系統命名空間,並在其中掛載私有目錄
/tmp
和/var/tmp
目錄,這些目錄不被命名空間外的程序共享。這對於保護對程序臨時文件的訪問很有用,但會使程序之間的共享通過/tmp
或/var/tmp
不可能。所以不,你不能從系統範圍的
/tmp/
目錄中讀取。但是在手冊的同一部分有一個解決方法:
…可以使用該
JoinsNamespaceOf=
指令在同一私有 /tmp 和 /var/tmp 命名空間中執行兩個或多個單元,有關詳細資訊,請參閱systemd.unit(5)。因此,如果您的遠端部署代理也從 systemd 單元執行,您可以將它們連接到一個單獨的 PrivateTmp 中,它們之間共享仍然與系統的其餘部分分開。
如果你不能這樣做:不要將文件儲存在系統中
/tmp/
,只需將其放置/移動到另一個位置……