将Visual Studio代码安装为快照时出错

我尝试使用以下命令在Ubuntu 16.04上安装MS Visual Studio Code作为快照:

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. 

我想知道--classic flag做了什么(不仅仅是man页解释),为什么我在安装Visual Studio Code时遇到了上一个错误。

观看这个简短的video,解释快照中可用的每个限制模型,为什么--classic存在和它的用例。

https://www.youtube.com/watch?v=GZhbJ44q4Lk


(来源:以下文档来自snapcraft.io:限制政策 )

严格

这是应用于快照的默认安全策略。 该快照仅在其自己的安装空间和选定区域中具有读取和/或写入权限。 它可以访问由核心或ubuntu-core snap捆绑和/或提供的库。 可以使用接口授予扩展权限,这些接口在安装时或用户使用snap connect命令连接 。 例如,home接口将授予用户家中的读取权限。

严格限制为您提供以下可读和/或可写路径:

  • / snap / snapname / revision(只读,快照安装路径)
  • / var / snap / snapname / revision(读/写,每个修订版数据)
  • / var / snap / snapname / common(读/写,常用数据)
  • / home / $ USER / snap / snapname / revision(读/写,每修订用户数据)
  • / home / $ USER / snap / snapname / common(读/写,常见用户数据)

有关严格限制的快照可见内容的更多详细信息,以及在快照的受限空间内访问shell的方法,请参阅环境变量列表。

DEVMODE

开发人员模式(也称为devmode)使用与严格限制相同的安全策略,但安全拒绝在/var/log/syslog变为警告(请参阅调试 )。 这在捕获应用程序时很有用,可以发现需要声明哪些接口。 开发人员模式中的快照无法释放到稳定和候选商店渠道中 。

经典

经典限制中的快照表现为传统打包的应用程序,具有对系统的完全访问权限。 与严格和devmode相反,经典快照看作“/”的是主机系统的“/”而不是核心快照的“/”。 使用此完全打开的安全策略的快照在商店中进行人工审查,并且仅允许在传统Linux发行版之上安装snapd的系统上 ,而不是从Ubuntu Core映像引导系统。 它们可以在所有商店渠道中发布。