19

I have ubuntu 12.04 running in a virtual machine on virtual box. Its existence is mainly as a 'toy' to play about with Ubuntu, so for this reason I wanted the GUI (is that what 'Dash' is in ubuntu 12.04? Anyway...)

One thing I am currently using this machine for is a LAMP server. I use 'gedit' to edit my files, but because I haven't correctly set permissions yet I just open it with sudo in terminal.

Just now, to try to simplify this process I created a shell script on the desktop with a very simple job - sudo gedit

I can't help thinking there must be an even more obvious way to open gedit as root from the GUI than this. So is there?

Edit: I just 'improved' my script by replacing sudo with gksudo. Now I don't have to have a terminal window open while gedit is open. So I guess this is quite convenient for now :) It would be good, for the sake of knowledge, to know if this is anything close to how the more seasoned ubuntu users would do this type of thing.

3

7 Answers 7

20

Use gksudo gedit.

gksudo is the equivalent of sudo for graphical programs, which are not safe to run using sudo.

7
  • 4
    Problem is, gksu is not installed by default in Ubuntu 13.04 anymore. I would really love to see an answer for those on 13.04+. The suggested alternative is pkexec, but it just doesn't work =/.
    – Alaa Ali
    Jul 14, 2013 at 13:15
  • 1
    @Alaa But it's still in the repository, so a quick sudo apt-get install gksu should install it for you.
    – IQAndreas
    Jul 14, 2013 at 21:15
  • 1
    If you want an explanation to why it is not recommended to use sudo: What is the difference between “gksudo nautilus” and “sudo nautilus”?
    – IQAndreas
    Jul 15, 2013 at 2:05
  • 5
    @IQAndreas, I know it's in the repositories, but it's just inconvenient, if I'm answering a new user and want him to edit a file as root, to tell him "first, run sudo apt-get install gksu". Right now, it's a dilemma, at least for me. I can't tell him to "use pkexec", because it doesn't work, and it's too risky to sudo -i then gedit. Also, I know the difference between gksudo and sudo =), what you might have linked me to instead, is this: Why is gksu no longer installed by default in 13.04?.
    – Alaa Ali
    Jul 15, 2013 at 5:31
  • @Alaa Valid point regarding apt-get. Actually, my second comment (the one with the link) was directed at the answer you gave, and not a continuation of the discussion in the comments (I figured the poster may want to know the reason why it is "not safe to run using sudo").
    – IQAndreas
    Jul 15, 2013 at 6:05
7

I find myself running gedit as root quite frequently, so I added the option to the right-click menu in Unity (it uses the same command as the selected answer, gksu gedit).

You will need to edit a *.desktop file in order to add the menu option, and you have two choices:

  • /usr/share/applications/gedit.desktop (requires root access to edit) - The menu option will be added for all users. Note that you may need to re-edit this file, adding the option if an update to gedit occurrs that overwrites your changes.
  • ~/.local/share/applications/gedit.desktop (If you can't find it there, make a duplicate of the one found in /usr/share/applications/, and save it to this new location) - The menu option will only be available for the specified user, and is considered "better practice". Note that if you already have it docked to your Unity bar, you will need to choose Unlock from Launcher on your existing GEdit icon, then re-add your "custom" version. These changes should stay even if GEdit gets an update.

Edit the text file gedit.desktop, adding the following block of code (you can use the existing two blocks as a template):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Next, add the new action to the list (should be at around line 19 of the text file):

Actions=Window;Document;RootWindow;

Now right-clicking the text editor window in Unity brings up this handy new option:

Ubuntu Unity: Open Gedit as Root

1
  • I also have the same setup for opening the file manager as root, which runs gksu nautilus.
    – IQAndreas
    Jul 14, 2013 at 12:43
4

Use admin:// in front of the file name which brings up the standard GUI password prompt for your respective WM/shell.

So for example, if you wanted to edit your repos, instead of typing sudo gedit /etc/apt/sources.list you would type gedit admin:///etc/apt/sources.list. It works for basically all GUI programs, not just Gedit.

2
  • This answer is the correct way to do it now. The accepted answer was correct for previous versions of Ubuntu (prior to 17.04, I think).
    – Enterprise
    Nov 19, 2018 at 15:59
  • When I use admin:// in Ubuntu Desktop 22.04, to access a file (e.g. "admin:///etc/default" followed by selecting "grub", Text Editor requires me to enter a password up to three times. I must type it twice at the Open dialog. Sometimes, Text Editor asks a third time when saving the file. Is there a better way to open files with root privileges?
    – Zian Choy
    Apr 17, 2023 at 22:34
2

gksudo gedit works in 16.04 LTS, but in in 17.10 with Wayland gksudo does not work.

0

You can open Nautilus as root, gksu nautilus, now any text file you open from that window will open in Gedit as root.

1
  • @DavidFoerster not quite, imo :-)
    – guntbert
    Jan 3, 2018 at 17:29
0

gksudo is apparently not available on newer Ubuntu versions and gksu wasn't working for me, but this answer was very helpful in my case (Ubuntu 17.04).

Use visudo to add the following line to your sudo config file:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
0

EDITOR=gedit sudo -e is recommended.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .