How to run a GUI program as a different user (Debian)?

14,468

Solution 1

First off, don't use sudo or su to change users to run a graphical process, or you're liable to have problems down the line (~/.ICEauthority changing owner is a notable issue). Instead, create a shortcut that uses the following command:

gksu -u [user] command

gksu launches a graphical prompt for the user's password, and upon entering the correct password, launch the application as the user specified.

Solution 2

my own solution involves ssh. when I want to run <command> under a different user <login>, I do this:

ssh -CY <login>@0 <command>

yes, I do need a ssh server in place and I do need to either enter the other user password or to have my own public key in ~<login>/.ssh/authorized_keys2. and I cannot close the terminal from which I gave the command.

Share:
14,468
Stéphane Gimenez
Author by

Stéphane Gimenez

Computer scientist, interested in logics, programming languages, parallel and distributed computation, photography, cryptocurrencies. I live on open source software. I also like to climb mountains and play this ancient game called go.

Updated on September 18, 2022

Comments

  • Stéphane Gimenez
    Stéphane Gimenez over 1 year

    Using a terminal, I can change the running user with su and sudo — but how can I do that by clicking on an icon/shortcut on the desktop/start menu?

    If I have to be root to execute I will be asked anyway, but some programs e.g. Krusader and NetBeans sometimes run without root access but then you can't accomplish what you want.

    On Windows I simply hit shift and rightclick on it and am prompted for user and password. I guess there is a similarly simple way to do that in Debian as well. (Apart from workarounds like creating scripts such as sudo xyz.)

    Thanks in advance!

  • Joachim Breitner
    Joachim Breitner over 9 years
    What does gksu do differently from sudo so that it works better?