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

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

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

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

Примечание:

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

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

4 ответа

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

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

      sudo apt install nautilus-admin

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

      gedit admin:///etc/fstab

Вы можете использовать pkexecвместо gksudo. Мой способ бега, например. с повышенными привилегиями — создать скрипт, например, следующего содержания:

      #!/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) и заменив на /usr/local/bin/su_geditв целом Exec=линии.

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

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

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

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

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

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

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

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

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

Со страницы руководства...

       -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.

Так что флаг заставляет предположить rootдомашний каталог как HOMEвместо домашнего каталога текущего пользователя. В противном случае некоторые файлы в userдомашний каталог станет владельцем 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
Другие вопросы по тегам