我有ubuntu + x11 + gnome。
我想以另一个用户身份运行图形应用程序。
但是,当我使用sudo -u otheruser app
从命令行启动时,我收到错误“未指定协议”。
我该如何解决这个问题?
答案 0 :(得分:10)
xhost '+si:localuser:USERNAME'
答案 1 :(得分:9)
首先执行此命令:
$ sudo xhost +
然后以其他用户身份运行您想要的命令:
$ sudo -i -u username
$ command you want to run
完成后:
$ sudo xhost -
答案 2 :(得分:2)
使用
xdg-su -u user -c command
答案 3 :(得分:1)
您可能需要告诉您的X服务器接受来自另一个用户的连接,而不是拥有服务器实例的用户(您)。查看xhost命令。
答案 4 :(得分:0)
gksudo -u命令
答案 5 :(得分:0)
gksu -u <user> -c <command>
将<user>
替换为用户名以运行命令,并<command
&gt;使用您要运行的命令。请记住,程序将在<user>
的上下文中运行,但在当前目录中运行。
在弹出窗口中,输入目标<user>
的密码。
答案 6 :(得分:0)
此处提供的大多数解决方案未与 Wayland 和 PulseAudio 集成。
我为此用例编写了 ego
(Alter Ego),它会自动处理 xhost
以及 Wayland 和 PulseAudio 套接字共享:https://github.com/intgr/ego
所以你只需运行 ego app
或 ego -u somebody app
如果遇到问题,请在 GitHub 上打开一个问题。我可能是它的唯一用户,所以还没有进行太多测试。
(我注意到我的答案晚了十年,但希望它会帮助某人:D)