LINUX.ORG.RU

Запуск графической программы от рута

 ,


0

1

Задача: из-под рута запустить графическое оповещение (например kdialog для KDE)

Debian Testing, KDE

Открываю терминал, вхожу под root.

Дальше пишу:

DISPLAY=:0
XAUTHORITY=/home/<ИМЯ ПОЛЬЗОВАТЕЛЯ>/.Xauthority
XDG_RUNTIME_DIR=/run/user/1000

и запускаю

/usr/bin/kdialog --title "test" --passivepopup "TEXT"

и получаю:

QStandardPaths: runtime directory '/run/user/1000' is not owned by UID 0, but a directory permissions 0700 owned by UID 1000 GID 1000
Could not find color scheme "BreezeBlackAndWhite2" falling back to BreezeLight
QStandardPaths: runtime directory '/run/user/1000' is not owned by UID 0, but a directory permissions 0700 owned by UID 1000 GID 1000

https://ibb.co/28xzdmp

p.s. BreezeBlackAndWhite2 - это просто моя тема для KDE

Что я делаю не так, и как сделать чтобы всё заработало нормально? Перерыл уже пол интернета.

UPD: Решение уже найдено Запуск графической программы от рута (комментарий)

★★

Последнее исправление: devorg (всего исправлений: 1)

Что я делаю не так, и как сделать чтобы всё заработало нормально?

А что именно ненормально? На скрине вроде успешно запущеная прога.

XDG_RUNTIME_DIR=/run/user/1000

Это влечёт за собой потенциальные уязвимости, надо директорию куда юзеры не могут попасть. А вообще по-моему эта переменная просто не нужна.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)

В общем оказалось всё просто вроде, надо было sudo -u username прописать перед командой.

Вот так заработало:

sudo -u <ИМЯ ПОЛЬЗОВАТЕЛЯ> DISPLAY=:0 XDG_RUNTIME_DIR=/run/user/1000 notify-send test
devorg ★★
() автор топика
Ответ на: комментарий от thesis

Нужно периодически запускать команду, которая требует рут доступ, по этому я её засунул в рутовый крон. Ну и опоещение нужно сделать на рабочем столе когда она срабатывает.

devorg ★★
() автор топика