Subject: Bug#457: Fwd: polkit-gnome-authentication-agent-1 fails to start on specific distros

From: Michael DePaulo <[email-masked]>
Date: Sat, 22 Mar 2014 11:44:34 -0400

Package: x2goserver
Version: 4.0.1.13

Notes:

1. I am not sure if this is a bug in x2goserver, x2goserver-xsession,
or in nx-libs.

2. This bug is probably in X2Go's integration with ConsoleKit (or lack
thereof.) PolicyKit depends on ConsoleKit (and on systemd-logind in
newer distros.)

3. RHEL7 beta (systemd-logind) is not affected and pkexec commands do
work. However, PolicyKit authentication within apps fails. I will file
a separate bug about this.

4. I also tested Ubuntu 12.04.4 LTS 32-bit (ConsoleKit) with Unity and
with MATE 1.6. On that distro, polkit-gnome-authentication-agent-1
(Unity) & polkit-mate-authentication-agent-1 do start, but pkexec
commands fail for another reason (the app complains that it cannot
open the display.) A simple workaround for this case is to export
XAUTHORITY 1st, I will file a separate bug about this.

5. polkit-gnome-authentication-agent-1 is started as gdm, but it
should be started as the user also.

Test system:
CentOS 6.5 64-bit
x2goserver: 4.0.1.13
x2goserver-xsession: 4.0.1.13 (same behavior when this package is not installed)
nx-libs: 3.5.0.22
GNOME
(This distro uses ConsoleKit, not systemd-logind)

[batmin@mothership-el6 ~]$ pkexec gpk-application
Error executing command as another user: No authentication agent was found.
[batmin@mothership-el6 ~]$ ps -ef | grep agent
gdm        653     1  0 11:06 ?        00:00:00 /usr/bin/spice-vdagent
gdm        671   645  0 11:06 ?        00:00:00
/usr/libexec/polkit-gnome-authentication-agent-1
batmin    1246     1  7 11:08 ?        00:00:01
/usr/lib64/nx/../x2go/bin/x2goagent -extension XFIXES -nolisten tcp
-dpi 96 -D -auth /home/batmin/.Xauthority -geometry 1024x768 -name
X2GO-batmin-52-1395500884_stDGNOME_dp32 :52
root      1532     1  0 Mar21 ?        00:00:01 /usr/sbin/spice-vdagentd
batmin    1710     1  0 11:08 ?        00:00:00 /usr/bin/spice-vdagent
batmin    2032  2015  0 11:08 pts/0    00:00:00 grep agent
[batmin@mothership-el6 ~]$ /usr/libexec/polkit-gnome-authentication-agent-1

(polkit-gnome-authentication-agent-1:2035): polkit-gnome-1-WARNING **:
Unable to determine the session we are in: Remote Exception invoking
org.freedesktop.ConsoleKit.Manager.GetSessionForUnixProcess() on
/org/freedesktop/ConsoleKit/Manager at name
org.freedesktop.ConsoleKit:
org.freedesktop.ConsoleKit.Manager.GeneralError: Unable to lookup
session information for process '2035'
org.freedesktop.ConsoleKit.Manager.GeneralError
Unable%20to%20lookup%20session%20information%20for%20process%20%272035%27
[batmin@mothership-el6 ~]

---

From: Mike Gabriel <[email-masked]>
Date: Wed, 20 Aug 2014 10:57:30 +0000

Hi Michael,

> [batmin@mothership-el6 ~]

I assume that this GNOME polkit daemon is from GNOMEv2(?).

Any chance you can provide me with a link to the source code?

Before you do this, please check if the X2Go Session is using  
x2goserver-xsession and if the session is launched (via xinitrc or so)  
with prefixed ck-launch-session.

In Debian/Ubuntu, this is handled via  
/etc/X11/Xsession.d/90consolekit. Something equivalent should exist  
for RHEL-6 based distros.

Mike
-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: [email-masked], http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb

---

From: Michael DePaulo <[email-masked]>
Date: Wed, 20 Aug 2014 09:49:20 -0400

On Wed, Aug 20, 2014 at 6:57 AM, Mike Gabriel
<[email-masked]> wrote:
>>[...]

`yum provides /usr/libexec/polkit-gnome-authentication-agent-1`
determined that the binary package is
"polkit-gnome-0.96-3.el6.x86_64".
More info is here. the binary package and the source package are both
"polkit-gnome":
http://pkgs.org/centos-6/centos-x86_64/polkit-gnome-0.96-3.el6.x86_64.rpm.html
For some reason the package is not on http://git.centos.org. Maybe it
does not exist in CentOS 7. Either way, the source rpm is here, dated
2010-08-17:
ftp://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/polkit-gnome-0.96-3.el6.src.rpm

> x2goserver-xsession and if the session is launched (via xinitrc or so) with
> prefixed ck-launch-session.

Whether I login locally or over x2go, running `ps -ef` does not list
any commands prefixed with ck-launch-session.

However, `ck-list-sessions` lists the local session, but not the X2Go session.

Also, note:
$ cat /usr/share/xsessions/gnome.desktop  | grep Exec
Exec=gnome-session
TryExec=gnome-session

> In Debian/Ubuntu, this is handled via /etc/X11/Xsession.d/90consolekit.
> Something equivalent should exist for RHEL-6 based distros.

It appears that the ConsoleKit integration is located in these 3 scripts:
/etc/X11/xinit/xinitrc
/etc/X11/xinit/xinitrc-common
/etc/X11/xinit/Xsession

> Mike
[...]

-Mike#2

---

From: Mike Gabriel <[email-masked]>
Date: Fri, 22 Aug 2014 21:23:50 +0000

> any commands prefixed with ck-launch-session.

This is neither the case here. The question is, if you find some  
ck-launch-session hints in the /etc/X11 folder files.

> However, `ck-list-sessions` lists the local session, but not the  

Under Debian, ck-list-sessions shows X2Go sessions. So this needs  
fixing on RHEL6+derivatives, I guess.

> /etc/X11/xinit/xinitrc-common

Which one exactly? If unsure, could you send all three to me  
privately? Thanks.

> -Mike#2

Mike#1

-- 

DAS-NETZWERKTEAM

GnuPG Key ID 0x25771B31

freeBusy:

---

From: Michael DePaulo <[email-masked]>
Date: Sat, 23 Aug 2014 09:20:25 -0400

[...]
> Which one exactly? If unsure, could you send all three to me privately?
> Thanks.
The package for all 3 files can be downloaded here under here:
http://pkgs.org/centos-6/centos-x86_64/xorg-x11-xinit-1.0.9-14.el6.x86_64.rpm/download/
More info here:
http://pkgs.org/centos-6/centos-x86_64/xorg-x11-xinit-1.0.9-14.el6.x86_64.rpm.html

-Mike#2