Ubuntu – Is the difference between sudo and gksu the same as the difference between sudo -i and sudo -s

command linegksusudo

Is the difference between sudo cmd and gksu cmd, the same as the difference
between starting a shell with sudo -i and sudo -s?

… or put another way,
Is sudo cmd the same as sudo -i cmd
and gksu cmd the same as sudo -s cmd?

EDIT: Based on what I read on an Ubuntu Documentation Page where it says:

You should never use normal sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. sudo).

The "AFAICT" doen't really give me full confidence that there is nothing more to it.


(..a belated UPDATE: I tested his commemnt today (2 months later) about:
"This prevents files in your home directory becoming owned by root."
All files I created via sudo/gksu were all owned by "root", and the group was "root".)


I've read parts of the info sudo and noticed the -i and -s seem to be doing the same thing as the AFAICT environment issue…
but I hit overload.. so I've asked my question here.

PS.. My question is not about sudo vs gksu
.. It is more about: Is gksu the same as sudo -s
.. and if not, how do they differ?

Best Answer

gksu is basically a graphical frontend for sudo that allows graphical command to be run without the need to run an X terminal emulator and using su directly. It's effectively just a GTK+ skin for the superuser commands.

So if you wanted to run a GUI based program as root, you would invoke it with gksu cmd, rather than sudo cmd, which is used for invoking console programs as root.