I have ubuntu + x11 + gnome.
I want to run a graphical application as another user.
However, when I start it from the command line using sudo -u otheruser app
I get the error "No protocol specified".
How can I work arround this?
I have ubuntu + x11 + gnome.
I want to run a graphical application as another user.
However, when I start it from the command line using sudo -u otheruser app
I get the error "No protocol specified".
How can I work arround this?
Use
xdg-su -u user -c command
Execute this command first:
$ sudo xhost +
Then run the command you want as the other user:
$ sudo -i -u username
$ command you want to run
When you are done:
$ sudo xhost -
sudo xhost +local:
if you don't want connections from the internet –
Surveillance xhost +
is highly unsafe: It will allow any user to connect to your X session and open windows to you. –
Yarber Use
xdg-su -u user -c command
Most solutions provided here don't integrate with Wayland and PulseAudio.
I wrote ego
(Alter Ego) for this use case, it automatically handles xhost
and Wayland and PulseAudio socket sharing: https://github.com/intgr/ego
So you just run ego app
or ego -u somebody app
If you run into problems, please open an issue on GitHub. I may be the only user of it, so it hasn't gotten much testing yet.
(And I notice that I'm a decade late with this answer, but hopefully it will help somebody :D)
You probably need to tell your X server to accept connections from another user than the one owning the server instance (you). Look into the xhost command.
gksudo -u command
gksu -u <user> -c <command>
Replace <user>
with the username to run the command as, and <command
> with the command you want to run. Remember that the program will be run in the <user>
s context, but in the current directory.
In the popping up window, enter the password of the target <user>
of course.
© 2022 - 2024 — McMap. All rights reserved.