如何以 root 身份远程向使用“x”会话登录的普通用户发送“xmessage”?

Pet*_*ite 5 bash command-line

我在命令行上使用 BASH,通过 SSH 以 root 身份登录到另一个用户的 PC。

我希望向当前登录的用户发送一个运行 X 会话的弹出消息,但结果如下:

root@i5:~$ xmessage now                           
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0  
Run Code Online (Sandbox Code Playgroud)

预期的结果是远程机器上的弹出消息,说“现在”。

我可以通过启动本地 x 会话在我的本地机器上复制它,然后在终端中(如果我输入xmessage now它有效),但是如果在终端中su-我是 root 并且我再试一次,我会得到与上面相同的错误。

我还希望在需要通过 cron 以 root 身份运行的脚本中使用它,在我的本地机器上,脚本在某些情况下会提醒我并要求我选择两个按钮之一,向脚本提供反馈。

Pet*_*ite 1

借助此页面,我现在有了如下解决方案。

$ su
password:
$ xauth list
peter-aspire-ubuntu/unix:0  MIT-MAGIC-COOKIE-1  1978485c4f8d864503a4e645c77fd802
peter-aspire-ubuntu:0  MIT-MAGIC-COOKIE-1  1978485c4f8d864503a4e645c77fd802
$ DISPLAY=peter-aspire-ubuntu:0
$ export DISPLAY
$ cp /home/peter/.Xauthority /root/.Xauthority
cp: overwrite `/root/.Xauthority'? y
$ xmessage now
Run Code Online (Sandbox Code Playgroud)

结果符合预期,适合我的问题中描述的所有场景。

感谢所有参加的人。