使用 sudo 以 root 或其他用户身份登录时如何使用显示(例如浏览器)

使用 sudo 以 root 或其他用户身份登录时如何使用显示(例如浏览器)

当我使用 sudo (或 gksu) 以 root 或其他用户身份登录时(有时我使用 sudo -i 进行操作),我无法使用显示器。

我知道 root 身份的风险,这通常是当我想以另一个用户身份短暂执行某项操作而不关闭我常用帐户中的所有窗口时发生的。如果连接了三台显示器和 4 个工作区,那么窗口数量可能会很多。

然而,当我尝试时,我得到了类似

green@camelot-x:~$ firefox
No protocol specified
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0.0

我不太明白大部分错误输出(我甚至不认识“Mir”这个名字——除了一个名为“和平”的已解散的俄罗斯空间站),当然也不知道如何让它工作。

答案1

在我看来,出于安全目的,用户 X 将无法直接在用户 Y 的屏幕上显示窗口。您可以通过以其他用户身份使用 x 转发 ssh 到您自己的计算机并运行该程序来解决此问题。

在你的计算机上安装 sshd:

sudo apt install openssh-server

必须在 /etc/ssh/sshd_config 中指定 X11Forwarding yes

然后从终端:

ssh -X green@localhost

然后运行 ​​Firefox。它将显示在当前会话中,但会以您 ssh 所用的用户身份运行。

相关内容