Можно ли запустить 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, установив пакет
Пакет включен в стандартные репозитории Ubuntu и может быть установлен с помощью команды
sudo apt install nautilus-admin
Он основан на админке GNOME, т. е. эффект такой же, как если бы вы открыли файл из командной строки с помощью
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