![以 root 身份安装面向 Internet 的 snap 包,而不是以普通用户身份(具有 sudo 权限)](https://linux22.com/image/935171/%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E5%AE%89%E8%A3%85%E9%9D%A2%E5%90%91%20Internet%20%E7%9A%84%20snap%20%E5%8C%85%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BB%A5%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%EF%BC%88%E5%85%B7%E6%9C%89%20sudo%20%E6%9D%83%E9%99%90%EF%BC%89.png)
我计划举办一场微看实例内部LXD 容器在 vps 上可通过互联网访问。
从安全角度来看,我是否这样做有什么区别吗?
snap install wekan
(作为 root) vssudo snap install wekan
(作为 sudo 组中的用户)
如有任何意见和解释,我们将不胜感激。
答案1
没有有效差异:最终结果(安装卡扣)将是相同的。
由于某些非常好的理由,在裸机上运行的 Ubuntu 系统已禁用 root 提示。
然而,非特权 LXD 容器有点不同:
- 非特权 LXD 容器具有启用的根提示...但它不是主机根。
- 由于已经有一个启用了 root 帐户,因此创建启用 sudo 的管理员帐户是可选的。
- 您还可以从主机控制容器:
lxc exec container-name -- snap install wekan
。请注意,非特权容器缺少 sudo。
使用您更习惯的方法,并且符合您的组织政策。
评价:我自己的 LXC 容器没有人工管理员账户。我lxc exec
最常使用这种方法。
答案2
snap install mypackage
以 root 身份运行和运行之间没有什么区别sudo snap install mypackage
。
事实上,如果你以非 root 用户身份运行以下命令并登录 snap(创建账户:https://login.ubuntu.com/如果你还没有)
sudo snap login
然后你可以以非 root 用户身份运行以下命令(但已登录折断):
snap install mypackage
当你运行 snap 包时,你将在 Linux 运行时上运行该软件,该运行时对该应用程序不应访问的内容有几个内置限制。有点像防火墙。
当您运行 LXD 容器时,您将以类似于 Linux 发行版的方式运行整个 Linux 运行时,并具有将其与主机分开的几个内置限制。
在 LXD 容器内运行 snap 包会相互添加类似类型的限制。这看起来有点过分,但其实没问题。