LXD容器隔离问题?

LXD容器隔离问题?

我正在使用 LXD 容器,但无法完全理解隔离发生了什么。以下是我的场景:

  1. 创建一个 16.04 容器launch ubuntu:16.04 mycontainer
  2. lxc exec mycontainer /bin/bash在其中安装 Firefoxapt install firefox
  3. 创建与我的主系统用户同名的用户adduser myuser
  4. ssh-copy-id 给该用户vi /etc/sshd_config以允许使用密码进行 ssh,然后从主会话ssh-copy-id myuser@mycontainer-ip
  5. ssh -X 进入容器并启动 Firefoxssh -X myuser@mycontainer-ipfirefox

如果我在主会话中没有打开 Firefox,则会弹出一个孤立的 Firefox:无法访问我的主会话文件、没有插件等......

但是,如果 Firefox 已经在我的主会话中运行,则从容器中的 ssh -X 会话启动 FF 会打开另一个未隔离的 FF 窗口,并以我的主要用户身份运行(使用我的插件、访问文件等...)。

怎么了 ?

答案1

我在 lxd 的 github 上打开了一个错误报告,Stéphane Graber 给了我答案:这是Firefox 的一个功能,可以通过开关关闭--no-remote。所以当然LXD 没有问题

引用 Stéphane 的话:

我很久没有用过 Firefox 了,但我相信他们有代码可以通过 X 属性来查找并与现有的 Firefox 进行交互。

由于您传递了“-X”,您的容器可以访问您的 X 服务器,因此可以查询/设置 X 属性、列出所有正在运行的窗口......这很可能是 Firefox 检测现有 Firefox 会话并让其打开新窗口而不是产生新进程的方式。

我希望 Firefox 有一个命令行选项,以使其不这样做。

https://github.com/lxc/lxd/issues/3049

因此firefox --no-remote从容器启动会阻止 Firefox 在我的主会话中打开新窗口。

相关内容