Я використовую Trisquel GNU / Linux-Libre, який поставляється з Gnome3 Flashback Desktop Environment.
Я знаю, що я можу запустити програму GUI як root на sudo
&, gksudo
але я хочу знати, що як запустити програми GUI як root за допомогою pkexec
?
Коли я намагаюся запустити gedit
(або будь-яку іншу програму на зразок nautilus
:), pkexec gedit
тоді він запитає пароль для автентифікації: -
Після введення пароля вихід із помилкою: -
$ pkexec gedit
error: XDG_RUNTIME_DIR not set in the environment.
(gedit:6135): Gtk-WARNING **: cannot open display:
Тож, здається, щось не вдається із середовищем відображення.
Я також пробував, DISPLAY=:0 pkexec gedit
але не працює.
Наступна інформація доступна від man pkexec
: -
Навколишнє середовище, в якому його запустить PROGRAM, буде встановлено на мінімально відоме та безпечне середовище, щоб уникнути введення коду через LD_LIBRARY_PATH або подібні механізми. Крім того, змінна середовища PKEXEC_UID встановлюється ідентифікатором користувача процесу, що викликає pkexec. Як результат, pkexec не дозволить запускати програми X11 як інший користувач, оскільки змінні середовища $ DISPLAY та $ XAUTHORITY не встановлені. Ці дві змінні будуть збережені, якщо анотація org.freedesktop.policykit.exec.allow_gui про дію встановлена на порожнє значення; це, однак, не перешкоджає використанню лише для застарілих програм.
Зараз я не знаю, що робити для цього.
Таким чином, допоможіть мені з'ясувати, як запускати програми GUI як root за допомогою pkexec
. Або це можливо чи ні?
BTW, натхненний gparted-pkexec
командою, яка чудово працює. Як gparted
користуватися pkexec
?