sobota, 10 września 2016

Naprawiamy brak możiwości uruchomienia programów GUI z uprawnieniami roota

Wraz z wprowadzeniem nowej wersji dbus (na pewno dotyczy wersji 1.10.10) przestały się uruchamiać programy z graficznym interfejsem użytkownika z uprawnieniami root. Problem dotyczy np. Plasmy oraz MATE i Cinnamona (nie wiem, czy innych środowisk również, ale nie wydaje mi się, by był im obcy). W przypadku uruchamiania bezpośrednio ze środowiska zobaczymy wyłącznie, że program chce się uruchomić (np. "skaczący" kursor), ale ostatecznie nie uruchamia się, a uruchamiając (przez sudo) w konsoli otrzymamy informację:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
"Session bus not found\nTo circumvent this problem try the following command (with Linux and bash)\nexport $(dbus-launch)"
Oczywiście można twierdzić, że programy GUI w ogóle nie powinny być uruchamiane na uprawnieniach administratora, niemniej jednak nie jest to rozwiązanie. Niekiedy tego typu programy po prostu są wygodniejsze.
Do czasu, gdy problem nie zostanie rozwiązany mamy dwa obejścia problemu. Pierwszego nie polecam. Korzystacie na własne ryzyko. Może to doprowadzić do destabilizacji całego systemu. Obejściem tym jest instalacja paczki dbus-x11 z AUR. Raz jeszcze: nie korzystać z tej porady. Przedstawiam, bo gdzieś możecie znaleźć to rozwiązanie jako proponowane.
Do czasu rozwiązania problemu proponuję natomiast inne rozwiązanie, które wykorzystuje składniki systemu i według mojej wiedzy, nie powoduje żadnych niekorzystnych w systemie problemów i powikłań.
Zamiast zatem uruchamiać program w dotychczasowy sposób, uruchamiamy go wydając następujące polecenie:
kdesu dbus-launch nazwa_programu
lub
gksu dbus-launch nazwa_programu
ewentualnie
sudo dbus-launch nazwa_programu
Polecenie wydajemy w konsoli bądź - w przypadku Plasma - korzystając z Krunnera.