19

我有 ubuntu + x11 + gnome。

我想以另一个用户身份运行图形应用程序。

但是,当我使用从命令行启动它时,sudo -u otheruser app出现错误“未指定协议”。

我该如何解决这个问题?

4

7 回答 7

11

xhost '+si:localuser:USERNAME'

于 2013-11-14T15:41:52.853 回答
8

首先执行这个命令:

$ sudo xhost +

然后以其他用户身份运行您想要的命令:

$ sudo -i -u username
$ command you want to run

完成后:

$ sudo xhost -
于 2009-07-14T08:44:07.273 回答
3

采用

xdg-su -u user -c command
于 2009-07-14T09:01:58.127 回答
2

此处提供的大多数解决方案都不与 Wayland 和 PulseAudio 集成。

我为这个用例编写了ego(Alter Ego),它会自动处理xhostWayland 和 PulseAudio 套接字共享:https ://github.com/intgr/ego

所以你只需运行ego appego -u somebody app

如果遇到问题,请在 GitHub 上打开一个问题。我可能是它的唯一用户,所以它还没有得到太多的测试。

(而且我注意到我的这个答案晚了十年,但希望它会对某人有所帮助:D)

于 2021-03-07T04:27:33.223 回答
1

您可能需要告诉您的 X 服务器接受来自另一个用户的连接,而不是拥有服务器实例的用户(您)。查看 xhost 命令。

于 2009-07-14T08:42:22.143 回答
0

gksudo -u 命令

于 2009-07-14T13:53:41.233 回答
0
gksu -u <user> -c <command>

替换<user>为运行命令的用户名,<command> 替换为您要运行的命令。请记住,程序将在<user>s 上下文中运行,但在当前目录中。

在弹出的窗口中,<user>当然输入目标的密码。

于 2017-05-22T18:27:28.020 回答