我知道預設情況下它是世界可寫的,但我想知道它是否需要如此? MacOS、作業系統及其任何支援應用程式是否/tmp
->
/private/tmp
需要全域可寫入?
我在蘋果的文檔中找不到任何說明這種或另一種方式的內容,並希望其他人可能知道?
有觀點認為,為了提高安全性,應刪除其全域可寫入權限,因為應用程式應該tmp
在自己的應用程式目錄中進行沙箱化。
答案1
如果您鎖定權限/private/tmp
(這/tmp
是一個符號連結),那麼任何試圖以違反權限變更的方式使用它的軟體都會崩潰(即使它以安全的方式使用該目錄,這是完全可能的)。
讓我來看看更改權限將如何/private/tmp
影響不同類型的軟體:
- 沙盒應用程式(即那些選擇加入 macOS 沙盒機制的應用程式)大多僅限於自己的沙盒容器(在 下
~/Library/Containers
),對其之外的任何內容的存取都受到限制。我認為他們根本不被允許使用/private/tmp
(無論它的權限是什麼)。除非有一個權利這將允許他們訪問它——但我不知道有什麼可以做到這一點。 - 使用任何標準方法建立/定位臨時檔案(包括使用
$TMPDIR
或 的shell 腳本mktemp -t ...
)的軟體將自動使用 下的私有(每個使用者)目錄/var/folders/something...
,該目錄比使用 所做的鎖定程度更高/private/tmp
。 - 使用的軟體
/private/tmp
適當地(這不是微不足道的,但正如我所說,這是完全可能的)如果您的權限更改不允許訪問它,則可能會失敗(也許以安全的方式,也許不是 - 取決於細節)。 - 使用的軟體
/private/tmp
不恰當地如果您的權限變更不允許存取它,也可能會失敗(同樣,也許以安全的方式,也許不是——取決於細節)。
據我所知,鎖定/private/tmp
很可能只會破壞某些軟體,並且可能會產生比它解決的問題更多的問題。