为什么Ubuntu要求我们在Ubuntu网站注册一个帐户才能安装Snap包?


因为它想无处不在地监视你...开玩笑的!Snaps遵循apk政策。未来应用商店的销售旨在创建一个创新和商业可行的环境。 - ipse lute
11为什么每当我听到“创新”这个词时,我就会想到隐秘的、忽视隐私的数据收集?我认为编制一个谁安装了什么软件的清单是一个极大的倒退。如果落入错误的手中,这也是一个安全风险。这应该是可选的。 - artfulrobot
2“需要账户”的事情就是为什么每次遇到快照时我都立刻离开的原因。谁曾经想过这个完全误解了受众。 - Thorbjørn Ravn Andersen
现在稍晚一点,我发现通过命令行安装Snaps对我来说还不错。但我仍然不喜欢应用商店。 - Thorbjørn Ravn Andersen
2个回答

这种行为与Ubuntu软件中心一致。Canonical与第三方软件提供商合作,在合作伙伴存储库中提供商业软件的付款和托管服务。在Ubuntu 16.04 LTS中,这将被Ubuntu应用商店取代,它为snap存储库的后端提供支持。
虽然命令行工具可以自由访问snap,但Ubuntu软件商店使用Ubuntu One来处理付款和订单历史(以便之前购买的内容可以在您拥有的任意系统上下载和安装)。
因此,这是一个实现细节,与被Ubuntu软件替代的软件的行为相匹配。

5但是...为什么我需要一个账户来安装Videolan呢?它不是完全开源的吗?如果是一个需要购买的应用程序,我可以理解,但对于一个开源应用程序来说呢?之前的版本从来没有要求过安装开源软件时需要账户,为什么现在开始要求了呢? - Ismael
之前的版本并不存在,因为这个对于snaps的要求自从snaps与Ubuntu软件整合以来就一直存在。您无需登录即可安装VLC。可以从软件仓库安装,也可以通过命令行使用'sudo snap install vlc'安装snap。 - Nathan Haines

当前行为存在技术原因和设计原因。

首先,snapd需要某种形式的身份验证,因为它执行的是系统级操作。在命令行中,您可以使用sudo,就像执行apt install一样,因此不需要在线账户。在使用软件时,目前唯一可用的身份验证方式是Snap商店。正在讨论替代方案...

我尝试通过尝试让snapd生成一个没有商店访问权限的Macaroon来解决这个问题。但据我了解,获取Macaroon需要与商店进行往返交互。

所以我认为解决这个问题的方法要么允许snapd生成本地的Macaroons,要么使用其他类型的身份验证令牌进行本地访问。(评论27

其次,SSO身份验证是主要的设计模式,因为Snappy的主要用例是管理多个物联网设备。对桌面/笔记本电脑用户的负面影响是未计划的。

净效果是对这些设备来说安全性更好...例如看看现代的WiFi接入点。您会获得一个单一管理账户,通常在云端,通过该账户管理所有设备。(评论25
似乎有一个计划改变行为,这样桌面/笔记本电脑用户就不需要使用在线账户进行身份验证了。您可以订阅此问题以接收更改的消息。
向root分配授权令牌以操作系统相当于允许root自身进行删除操作而无需进一步存储信息,而我们允许这样做...这个必要的基础设施已经基本到位,因为我们已经需要分别维护本地和远程macaroon,并且已经处理了远程macaroon缺失或不正确的情况。(评论29

snapd需要某种形式的身份验证,因为它执行的是系统级操作。在命令行中,您可以使用sudo,就像apt install时一样,因此不需要在线帐户。当使用软件时,目前唯一可用的身份验证方式是Snap商店。当使用软件安装普通软件包时,我会被要求输入本地密码。 - tuxayo
看起来snapd使用Polkit来验证系统操作,但同时也要求您登录在线账户以及进行系统身份验证。 - Ashelyn Dawn
2难道 Snaps 不应该被沙盒化吗?为什么它们需要系统级访问权限?那又怎样呢?现在 Snap 商店充当了 sudoers 权限的机构?这对任何人来说都不是疯狂的吗? - rich remer