[systemd-devel] logind-dbus-session question

Damian Ivanov damianatorrpm at gmail.com
Sat May 11 13:29:42 UTC 2019


Hello folks.

Thank you for being pioneers in the field!

I am trying to get responses from the login1 system bus, but I get
Access Denied messages.
I am calling it as normal user (the user of the session - as root it
works). SELinux is disabled.

The methods in question are TakeControl/ReleaseControl for grabbing
the input via busctl.
ReleaseControl => You are not in control of this session
TakeControl b true => Access denied

>From the logind documentation:
"TakeControl() allows a process to take exclusive managed device
access-control for that session. Only one dbus-connection can be a
controller for a given session at a time. If the force argument is set
(root only), an existing controller is kicked out and replaced.
Otherwise, this call fails if there is already a controller. Note that
this call is limited to dbus-users with the effective UID set to the
User of the Session or root."

So another process is currently grabbing the input (for the console/VT I think).
Yet when you run weston it does grab the input by taking control, how
does weston have the permission to kick the console controller out
(weston is not run as root)? How can I check the pid of the process
that owns the session control?

I would appreciate a point in the right direction.

br,
Damian


More information about the systemd-devel mailing list