在 Ubuntu 中有没有办法让多个远程桌面同时用同一个账户登录?

在 Ubuntu 中有没有办法让多个远程桌面同时用同一个账户登录?

我的问题如下:我有一个 Ubuntu 20.04 安装(实际上它是一个 VM,但应该不相关),并且四个人需要连接到它,有时是同时连接。此外,用户应该连接到同一个帐户,但不能互相干扰(因此看不到他们的指针或其他人的输入)。基本上,它应该像使用 SSH 一样(可以使用相同的凭据进行多次登录),但使用 GUI。这是一个下午的尝试,其中一些是:

  1. XRDP:可以接收多个连接,但只能使用不同的帐户,当我尝试使用相同的凭据从两个不同的客户端登录时,其中一个完全是黑色的。
  2. VirtualBox 远程显示(主机):可以使用同一个帐户提供多个连接,但每个客户端看到的桌面与其他客户端相同。
  3. Anydesk(也具有多个虚拟桌面):与3相同。
  4. 使用 X11 的 SSH:我还找不到与多台设备共享整个桌面的方法。

连接将在 LAN 或 VPN 内部进行,因此安全性不是我的首要考虑,每个解决方案都被接受!

编辑: 正如 user1686 在答案中正确指出的那样,这个问题本质上很难解决,因为许多应用程序在多个并发会话中与同一用户帐户一起使用时无法正常工作。我的最终解决方案是创建四个具有 root 权限的不同帐户,并在所有帐户上运行 vncserver。我也尝试使用 xrdp,但(由于未知原因)速度非常慢。VNC 运行顺畅,至少在 4 个用户连接的情况下。

答案1

是的,尽管效果不太好。

X11-over-SSH 支持这一点 – 客户端只需要一个可以在“窗口”模式下运行的本地 X 服务器。对于 Linux,有 Xephyr(它创建一个单独的 $DISPLAY),对于 Windows,大多数 Xserver 都有窗口模式作为选项。然后,您无需启动单个程序,而是通过运行gnome-session或类似操作来启动整个桌面环境。(但速度会很慢。)

VNC 也支持这一点 – 因为 Xvnc 充当远程端的 X 服务器(即它不仅仅附加到现有的 X 服务器),所以您实际上可以运行它的多个实例;例如,Xvnc :1为一个用户、Xvnc :2为另一个用户等等(当然,每个用户都使用不同的 VNC 端口)。RDP 也是如此。

但问题是全部这种方法是许多图形应用程序和桌面环境不是编写时考虑了多个实例。它们会争夺配置文件;如果一个客户端更改了 Files 中的查看模式,则所有客户端的查看模式都会改变,因为它们都共享同一个主目录。其他程序在退出时保存其设置,因此最后关闭的实例获胜,其他更改将被丢弃。最后,许多桌面环境服务运行单个实例套接字(例如 $XDG_RUNTIME_DIR/bus);有时程序会坚持仅有的在第一个客户端的显示器上打开新窗口,无论哪个客户端尝试运行它。

你真的应该真的重新考虑此设置的所有部分。客户端是否真的需要共享同一个帐户?(如果他们正在编辑文件 - 他们实际上不需要。)客户端是否真的需要拥有完整的桌面 GUI?(在大多数情况下,他们确实不需要。)

答案2

我今天遇到了类似的问题。我想让多个用户通过 RDP 访问同一个 Ubuntu 帐户(我们称之为“/home/target”)。

我的方法是创建多个帐户(每个连接用户一个),然后删除他们的文档/下载/等,并创建指向目标主页的符号链接

sudo ln -s /home/target/Documents /home/user1/Documents

为了对目标目录具有写访问权限,我还添加了

sudo adduser user1 target

(将用户 1 添加到目标组)和

chmod g+w /home/target
chmod g+w -R /home/target/Documents

(授予目标写入权限团体

这样,所有用户都可以同时连接(每个 /home/userX/ 包含临时会话等)并可以访问公共/共享目录。

相关内容