What is the difference between "gksudo nautilus" and "sudo nautilus"?
Solution 1
Taken from here:
You should never use normal
sudo
to start graphical applications as root. You should usegksudo
(kdesudo
on Kubuntu) to run such programs.gksudo
setsHOME=/root
, and copies.Xauthority
to atmp
directory. This prevents files in your home directory becoming owned by root.
Please note that this is primarily about configuration files. If you run Nautilus as root
, even with gksu
/gksudo
, and you create a file or folder anywhere with it (including in your home directory), that file or folder will be owned by root
. But if you run Nautilus (or most other graphical applications) as root
with sudo
, they may save their configuration files in your home directory (rather than root
's home directory). Those configuration files may be owned by root
and inaccessible when you're not running as root, which can severely mess up your settings, and may even keep some applications from working altogether.
The solution, once you have made this mistake, is to find the configuration files and delete them or chown
them back to belonging your non-root
user. Many such files start with a .
or are contained in a directory that starts with a .
. Some are located inside the .config
folder in your home directory. To see files and folders that start with a .
in Nautilus, press Ctrl+H (this shows hidden files.) To see them with ls
, use the -a
(or -A
) flag.
To find if there are files not owned by you in your home directory, you can use the following command in a terminal:
find $HOME -not -user $USER -exec ls -lad {} \;
which will list all files under the home directory not owned by the user.
Solution 2
Did you know there is a Nautilus add on called nautilus-gksu which adds an "open as administrator" to nautilus' right click menu?
Note: Not available in Ubuntu 12.04 and onward.
Solution 3
If you start a graphical application with sudo you can mess up the ownership of your files which can cause your apps to break. Never do that. Check the Community Help:
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).
Solution 4
sudo -H GUI-application-program
In Ubuntu (17.10) 17.10.1 and probably future versions of Ubuntu, gksu
and gksudo
are deprecated. They work in Xorg but not Wayland. But you can use sudo -H
to run GUI application programs without damage to your configuration files. Do not use plain sudo
.
If you are running Wayland (the new graphical system that replaces Xorg), you need a command with xhost
too.
xhost +si:localuser:root # if Wayland
sudo -H nautilus --no-desktop
See the following link for more details,
Why don't gksu/gksudo or launching a graphical application with sudo work with Wayland?
Solution 5
sudo by default preserves your $HOME variable. For example, if you run sudo firefox
you will run with root privileges but your configuration. If you change settings in this situation, you will end up with parts of your configuration owned by root instead of your user id.
Related videos on Youtube
DrKenobi
Updated on September 17, 2022Comments
-
DrKenobi almost 2 years
I've been using
gksudo nautilus
andsudo nautilus
through Alt+F2.What's the difference? They look very similar!
-
nutty about natty over 11 yearsa very helpful explanation / discussion including many screenshots: psychocats.net/ubuntu/graphicalsudo
-
Aditya over 10 years
-
Eliah Kagan almost 7 years
-
-
DrKenobi over 13 yearsI've already used 'sudo nautilus'. That means that my home directory is now owned by root? (PS: my English is not perfect)
-
Ryan C. Thompson over 13 yearsNo, it means that while you were running Nautilus as root, any files that it created in your home directory will be owned by root. This could include thumbnails and other supporting files that Nautilus creates automatically.
-
Peter.O over 13 years. The quoted segemnet you used has puzzled me since I first read it; specifically where it says: "This prevents files in your home directory becoming owned by root." .. I tested this today by creating some test files, on 10.04, 10.04(VM), 10.10(VM), and no matter how I started sudo/gksudo (Terminal->Nautilus, Terminal->gedit, Alt+F2...)... all cases caused my newly created to be owned by "root", with group "root".. Maybe I've missed something but I think that part of the quoted segment is misleading people...
-
Admin over 13 yearsHmm, I was just quoting the wiki page. I don't really have a deep understanding of the difference between the two tools. Perhaps someone on unix.stakexchange.com can help?
-
Eliah Kagan almost 12 years@Peter.O I've expanded this answer to address that question and explain exactly which files are treated differently with
sudo
, viagksu
/gksudo
. (@ChrisWilson Feel free to roll back or shorten this edit if you feel it's not totally within the scope of your answer...it seems to me it is, but that's entirely your call.) -
Eliah Kagan almost 12 yearsThat's not the only difference, and often is not the most important difference. (See some of the other answers here.)
-
IQAndreas almost 11 years
nautilus-gksu
is no longer available from Ubuntu 12.04 and onward. -
Wilf over 10 yearsAnd your link only shows that it is available up to 11.10...
-
Andre Figueiredo almost 7 yearsI like the assertiveness of this answer.