Есть ли более простой или более «правильный» способ открыть gedit от имени root?

19

У меня Ubuntu 12.04 работает в виртуальной машине на виртуальной коробке. Его существование в основном как «игрушка», чтобы играть с Ubuntu, поэтому по этой причине я хотел графический интерфейс (это то, что «Dash» в Ubuntu 12.04? Во всяком случае ...)

В настоящее время я использую эту машину для LAMP-сервера. Я использую «gedit» для редактирования своих файлов, но поскольку я еще не правильно установил права доступа, я просто открываю его с помощью sudo в терминале.

Сейчас, чтобы попытаться упростить этот процесс, я создал сценарий оболочки на рабочем столе с очень простой задачей - sudo gedit

Я не могу не думать, что должен быть еще более очевидный способ открыть gedit с правами root из GUI, чем этот. Так есть?

Редактировать: я просто «улучшил» свой скрипт, заменив sudo на gksudo. Теперь мне не нужно открывать окно терминала, пока открыт gedit. Так что я думаю, что сейчас это довольно удобно :) Было бы хорошо, если учесть, знать, близко ли это к тому, как более опытные пользователи Ubuntu будут делать такие вещи.

MrVimes
источник
2
Да, gksudo(или более широко известный как gksu) это то, что большинство людей используют. Много материалов для чтения: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/… askubuntu.com/questions/11760/…
Сет
2
Сет, ты хотел бы опубликовать свой ответ в качестве ответа? Это выглядит решенным.
Трэвис Г.
«Теперь мне не нужно открывать окно терминала, пока открыт gedit». <- Вы, возможно, уже знаете об этом, но если вы добавляете &команду, как показано здесь , вы позволяете окну терминала сценария оболочки закрываться сразу после geditзапуска, а не ждать его закрытия. Этот трюк должен работать gksudoбез проблем.
IQAndreas

Ответы:

19

Использование gksudo gedit.

gksudoявляется эквивалентом sudoграфических программ, которые небезопасны для запуска с помощью sudo.

Taymon
источник
4
Проблема в том, gksuчто по умолчанию не устанавливается в Ubuntu 13.04. Я очень хотел бы увидеть ответ для тех, кто 13.04+. Предлагаемая альтернатива есть pkexec, но она просто не работает = /.
Алаа Али
1
@Alaa Но он все еще находится в репозитории, поэтому быстрое sudo apt-get install gksuдолжно установить его для вас.
IQAndreas
Если вы хотите объяснить, почему не рекомендуется использовать sudo: в чем разница между «gksudo nautilus» и «sudo nautilus»?
IQAndreas
4
@ IQAndreas, я знаю, что это в репозиториях, но это просто неудобно, если я отвечаю новому пользователю и хочу, чтобы он отредактировал файл как root, чтобы сказать ему «сначала, запусти sudo apt-get install gksu». Прямо сейчас это дилемма, по крайней мере для меня. Я не могу сказать ему «использовать pkexec», потому что это не работает, и это слишком рискованно для того sudo -iвремени gedit. Кроме того, я знаю разницу между gksudoand sudo=), с которой вы, возможно, связали меня, заключается в следующем: почему gksu больше не устанавливается по умолчанию в 13.04? ,
Алаа Али
@Alaa Действительный пункт относительно apt-get. На самом деле, мой второй комментарий (тот, который содержит ссылку) был направлен на ответ, который вы дали, а не на продолжение обсуждения в комментариях (я подумал, что постер может захотеть узнать причину, по которой его «небезопасно запускать с помощью Sudo ").
IQAndreas
7

Я geditдовольно часто запускаюсь от имени пользователя root, поэтому я добавил опцию в контекстное меню в Unity (оно использует ту же команду, что и выбранный ответ gksu gedit).

Вам нужно будет отредактировать *.desktopфайл, чтобы добавить пункт меню, и у вас есть два варианта:

  • /usr/share/applications/gedit.desktop (требует прав root для редактирования) - опция меню будет добавлена ​​для всех пользователей. Обратите внимание, что вам может потребоваться повторно отредактировать этот файл, добавив параметр, если происходит обновление для gedit, которое перезаписывает ваши изменения.
  • ~/.local/share/applications/gedit.desktop (Если вы не можете найти его там, сделайте дубликат найденного в нем /usr/share/applications/и сохраните его в этом новом месте). Параметр меню будет доступен только для указанного пользователя и считается «лучшей практикой». Обратите внимание, что если вы уже Unlock from Launcherзакрепили его на панели Unity, вам нужно будет выбрать существующий значок GEdit, а затем повторно добавить свою «пользовательскую» версию. Эти изменения должны остаться, даже если GEdit получит обновление.

Отредактируйте текстовый файл gedit.desktop, добавив следующий блок кода (вы можете использовать существующие два блока в качестве шаблона):

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

Затем добавьте новое действие в список (должно быть примерно в строке 19 текстового файла):

Actions=Window;Document;RootWindow;

Теперь, щелкнув правой кнопкой мыши окно текстового редактора в Unity, открывается новая удобная опция:

Ubuntu Unity: откройте Gedit как Root

IQAndreas
источник
У меня также есть те же настройки для открытия файлового менеджера, что и root, который запускается gksu nautilus.
IQAndreas
2

gksudo geditработает в 16.04 LTS, но в 17.10 с Wayland gksudoне работает.

  • Вы можете установить и использовать, gksudoесли вы выберите Xorg на экране входа в систему,

  • но в Wayland вы должны использовать

sudodus
источник
2

Используйте admin://перед именем файла, которое вызывает стандартную подсказку пароля GUI для вашей соответствующей WM / оболочки.

Так, например, если вы хотите отредактировать свои репозитории, вместо того, чтобы печатать, sudo gedit /etc/apt/sources.listвы напечатаете gedit admin:///etc/apt/sources.list. Он работает практически для всех программ с графическим интерфейсом, а не только для Gedit.

Брэндон Гизинг
источник
Этот ответ является правильным способом сделать это сейчас. Принятый ответ был правильным для предыдущих версий Ubuntu (думаю, до 17.04).
Пи Джей Сингх,
0

Вы можете открыть Nautilus как root, gksu nautilusтеперь любой текстовый файл, который вы открываете из этого окна, будет открыт в Gedit как root.

user154126
источник
@DavidFoerster не совсем, imo :-)
Гантберт
0

gksudoпо-видимому, недоступно в новых версиях Ubuntu и gksuне работает для меня, но этот ответ был очень полезен в моем случае (Ubuntu 17.04).

Используйте visudoдля добавления следующей строки в ваш конфигурационный файл sudo:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
jtpereyda
источник