Участник:HihinRuslan/waylnd and root

Материал из ALT Linux Wiki
< Участник:HihinRuslan
Версия от 15:51, 24 октября 2024; HihinRuslan (обсуждение | вклад) (Новая страница: «== Повышение привилегий в XWayland == Свободный перевод [https://wiki.archlinux.org/title/Running_GUI_applications_as_root] === Пример проблемы === При попытке запустить графическое приложение от имени root с помощью su, sudo или pkexec в сеансе Wayland (например, GParted или Gedit), происходит ошибка, подобна...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Повышение привилегий в XWayland

Свободный перевод [1]

Пример проблемы

При попытке запустить графическое приложение от имени root с помощью su, sudo или pkexec в сеансе Wayland (например, GParted или Gedit), происходит ошибка, подобная этой:

  1. gedit

Не указан протокол Невозможно инициализировать сервер: Не удалось подключиться: Connection refused

(gedit:2349): Gtk-WARNING **: cannot open display: :0

До Wayland запуск графических приложений с повышенными привилегиями можно было правильно реализовать, создав политику Polkit, или, что более опасно, запустив команду в терминале, добавив к ней sudo; но в (X)Wayland это больше не работает, поскольку по умолчанию разрешено подключать клиентов только пользователю, запустившему X-сервер (см. сообщение об ошибке и коммиты upstream, на которые оно ссылается).

По возможности избегайте запуска графических приложений от имени root

Более универсальное, хотя и более небезопасное обходное решение позволяет запускать любое графическое приложение от имени root используя xhost

Использование xhost

Для этого выполните следующую команду от имени текущего (непривилегированного) пользователя:

$ xhost si:localuser:root

Чтобы удалить этот доступ после закрытия приложения:

$ xhost -si:localuser:root

Использование pkexec

Вы можете запустить приложение с графическим интерфейсом с помощью: $ pkexec env WAYLAND_DISPLAY=«$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY» XDG_RUNTIME_DIR=/run/user/0 program что сохраняет переменную окружения WAYLAND_DISPLAY.

Использование sudo -E

Вы можете запустить приложение с помощью: $ sudo -E program Если вы хотите, чтобы переменная окружения HOME была установлена для целевого пользователя, используйте: $ sudo -EH program что сохраняет переменные окружения, такие как WAYLAND_DISPLAY. И установит переменную окружения HOME была установлена для целевого пользователя