什麼是snap的經典模式,為什麼有些snap沒有它就無法安裝(例如MS Visual Studio)?

什麼是snap的經典模式,為什麼有些snap沒有它就無法安裝(例如MS Visual Studio)?

我嘗試使用以下命令在 Ubuntu 16.04 上將 MS Visual Studio Code 作為 snap 安裝:

sudo snap install vscode

但我有以下錯誤:

error: This revision of snap "vscode" was published using classic confinement and thus may perform
       arbitrary system changes outside of the security sandbox that snaps are usually confined to,
       which put your system at risk.

       If you understand and want to proceed repeat the command including --classic.

我想知道--classicflag 的作用是什麼(不僅僅是man頁面解釋)以及為什麼在安裝 Visual Studio Code 時出現之前的錯誤。

答案1

手錶這個短視頻這解釋了 snap 中可用的每種限制模型、--classic存在的原因及其用例。


來源: 以下文檔摘自snapcraft.io:限制政策

嚴格的

這是應用於快照的預設安全性策略。快照僅在其自己的安裝空間和選定區域中具有讀取和/或寫入權限。它可以存取它所捆綁的和/或由 core 或 ubuntu-core snap 提供的函式庫。可以透過介面授予擴充權限,這些介面可以在安裝時連接,也可以由使用者使用卡扣連接命令。例如,家庭介面將授予使用者家庭中的讀取權限。

嚴格限制為您提供以下可讀和/或可寫入路徑:

  • /snap/snapname/revision(唯讀,快照安裝路徑)
  • /var/snap/snapname/revision(讀/寫,每個修訂版資料)
  • /var/snap/snapname/common(讀/寫,通用資料)
  • /home/$USER/snap/snapname/revision(讀/寫,每個修訂版使用者資料)
  • /home/$USER/snap/snapname/common(讀/寫,通用使用者資料)

查看列表環境變數有關嚴格限制的快照可見內容的更多詳細信息,以及訪問快照有限空間內的外殼的方法。

開發模式

開發者模式,也稱為devmode,使用與嚴格限制相同的安全策略,但安全拒絕在/var/log/syslog(請參閱偵錯)。這在捕捉應用程式時非常有用,可以發現需要聲明哪些介面。開發者模式下的 Snap 無法發佈到穩定版和候選版儲存中頻道

經典的

經典限制中的 snap 套件的行為就像傳統打包的應用程式一樣,具有對系統的完全存取權。與 strict 和 devmode 不同,經典快照所看到的“/”是主機系統的“/”,而不是核心快照的“/”。使用這種完全開放的安全策略的 Snap 在商店中經過手動審核,並且僅允許在安裝了 snapd 的系統上使用在傳統的 Linux 發行版之上,而不是從系統啟動Ubuntu 核心圖像。它們可以在所有商店發布頻道

相關內容