Можно ли запустить nautilus или gedit с повышенными привилегиями?

Можно ли запустить nautilus или gedit с повышенными привилегиями?

Иногда мне нужно редактировать файлы в /etc. Я знаю, что могу сделать это с помощью консоли ( sudo mv some/file /etc/some/file, sudo nano /etc/some/file) и т. д., но я нахожу этот способ немного неуклюжим. Назовите меня избалованным, но я действительно привык к инструментам с графическим интерфейсом, таким как Nautilus и Gedit.

Такие дистрибутивы, как Ubuntu Mate или Mint, упрощают задачу: я могу щелкнуть правой кнопкой мыши по папке, после чего появится контекстное меню с такими опциями, как «открыть как администратор". После этого двойной щелчок по текстовому файлу открывает его в gedit с повышенными привилегиями.

Однако я не могу найти такую ​​опцию в стандартной версии Unity в Ubuntu:

введите описание изображения здесь

Примечание:

  • Я знаю об этом вопросе.Способы запуска Nautilus с повышенными привилегиями, но рекомендуемое здесь решение — использовать gksudo, который больше не работает
  • Я полагаю, что я всегда могу это сделать sudo gedit /etc/whatever, но - насколько мне известно - использование sudoинструментов с графическим интерфейсом крайне нежелательно.
  • Я припоминаю, что некоторые говорят, что не рекомендуется запускать инструменты с графическим интерфейсом с повышенными привилегиями.совсем. Однако, похоже, это не так, поскольку некоторые стандартные инструменты графического интерфейса сами требуют повышения прав, и Ubuntu Software, пожалуй, является одним из самых ярких примеров:

введите описание изображения здесь

Есть ли способ запустить Nautilus или Gedit с повышенными привилегиями?

решение1

Вы можете легко получить меню правой кнопки мыши, которое позволяет открывать файл с правами root, установив пакет nautilus-admin. Это расширение nautilus добавляет два пункта меню правой кнопки мыши. Один из них позволяет вам открыть файл как root для редактирования в gedit. Другой пункт позволяет вам открыть окно nautilus с правами root.

Пакет включен в стандартные репозитории Ubuntu и может быть установлен с помощью команды

sudo apt install nautilus-admin

Он использует административный бэкэнд GNOME, т.е. эффект тот же, как если бы вы открыли файл из командной строки с помощью URI admin://, например

gedit admin:///etc/fstab

решение2

Вы можете использовать pkexecвместо gksudo. Мой способ запуска eg. geditс повышенными привилегиями заключается в создании скрипта, например /usr/local/bin/su_gedit, со следующим содержимым:

#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit $*

Затем вы можете создать .desktopфайл для этого скрипта, например /usr/share/applications/su_gedit.desktop(я не проверял, /usr/share/applicationsбудет ли работать другое расположение), скопировав его содержимое org.gnome.gedit.desktopи изменив его соответствующим образом, т. е. изменив строки Name=и Comment=на то, что вам нужно (например, Name=Root Text Editorи Comment=Edit text files with root privileges), и заменив geditна /usr/local/bin/su_geditво всех Exec=строках.

После этого, при щелчке правой кнопкой мыши в Nautilus на файле, который обычно открывается в gedit, и выборе «Открыть с помощью другой программы», вы должны увидеть запись «Корневой текстовый редактор» в списке. Даже если ее там нет, если вы нажмете кнопку «Показать все программы», вы сможете ее выбрать.

Другой способ — создать похожий скрипт, который запускается с повышенными правами gnome-terminal, и создать лаунчер для этого скрипта, например, на панели GNOME или на рабочем столе. Из этого терминала вы можете просто запустить его geditкак root. Это то, что я обычно делаю.

решение3

Немо- это файловый менеджер по умолчанию, поставляемый с Cinnamon Desktop. Nemo позволяет вамщелкните правой кнопкой мышив любом месте заданного каталога и "Открыть как root."

Затем открывается второе окно с синим баннером «Повышенные привилегии».

Надеюсь это поможет!

примечание - (Похоже, вы хотите продолжать использовать Nautilus, так что проигнорируйте этот совет, если вы не хотите переходить на другой файловый менеджер.)

решение4

Из комментариев...

Theправильныйи самый простой способ запустить приложения с графическим интерфейсом с правами доступа из CLI — это использовать sudo -H.

пример:sudo -H gedit /etc/filename

Из sudoстраницы руководства...

 -H, --set-home
             Request that the security policy set the HOME environment
             variable to the home directory specified by the target
             user's password database entry.  Depending on the policy,
             this may be the default behavior.

Таким образом, -Hфлаг заставляет sudoпредположить rootдомашний каталог 's HOMEвместо домашнего каталога текущего пользователя. В противном случае некоторые файлы в userдомашнем каталоге 's станут владельцами root, что может привести к различным проблемам.

Примечание: взято изЧто означает флаг «-H» в «sudo -H»?

Наиболее распространенной проблемой при использовании sudoбез этой -Hопции является создание цикла входа в систему.

Это может произойти из-за того, что следующие файлы изменяются с your_username:your_username на root:root...

-rw------- 1 your_username your_username 407910 Nov  2 08:56 .ICEauthority
-rw------- 1 your_username your_username     58 Jun 23  2017 .Xauthority

Связанный контент