Re: Fwd: connect to session bus from root app

Simon McVittie <simon.mcvittie-ZGY8ohtN/[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Organization Collabora Ltd.
Message-ID <[email protected]>
On 16/04/15 23:02, Sergei Lopatin wrote:
> I try to connect to user session bus from my Qt root app. Unfortunately,
> I can't do this right.

The incorrect thing you're doing is trying to do that layering violation
in the first place. "Larger"/"lower-level" things (system services)
should never connect to "smaller"/"higher-level" things (user sessions);
if they should interact, then the user session should connect to system
services, not the other way round.

> FYI: I need root privileges to access system devices directly and
> session bus to set inhibitions preventing sleep/idle.

Preventing sleep is a system function. You could check how things on the
session bus would do that (on modern Linux the answer is usually "by
talking to logind, which is a system service"), and do that directly.

If you need a session app (which does things like preventing
lock-on-idle) to use devices or other system-level things, the
recommended way to do that is to have a system service that grants
limited, safe access to those things, then make your session app use
that system service.

Some real-world examples (these are GNOME-centric because that's what I
use, but similar things happen in other environments):

GNOME Shell (a GUI in the user session) uses NetworkManager (a system
service) to configure networking (a privileged system-level action)

GNOME Shell also uses BlueZ (a system service) to manipulate Bluetooth
devices (a privileged system-level action)

GNOME Software (a GUI in the user session) uses PackageKit (a system
service) to install packages (a privileged system-level action)

gnome-disks (a GUI in the user session) uses gvfs (a service in the user
session) which uses udisks2 (a system service) to manipulate disk
devices (a privileged system-level action)

-- 
Simon McVittie
Collabora Ltd. <http://www.collabora.com/>

_______________________________________________
dbus mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.