MacOS 上的「/tmp」或「/private/tmp」是否需要全域可寫?

MacOS 上的「/tmp」或「/private/tmp」是否需要全域可寫?

我知道預設情況下它是世界可寫的,但我想知道它是否需要如此? 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很可能只會破壞某些軟體,並且可能會產生比它解決的問題更多的問題。

相關內容