Re: polkit fails to authenticate on dbus

"karu.pruun" <[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <CADdF=ML6cr_MWvTVZTts35k2OTXQ+ZY09VdcbNssUmjst7jmSw@mail.gmail.com>
On Wed, Jan 21, 2015 at 12:50 PM, Simon McVittie wrote:
> On 20/01/15 20:48, karu.pruun wrote:
>> I am having troubles with dbus starting polkitd on my system
>> (DragonFlyBSD): polkitd fails to start since dbus rejects the three
>> attempts to authenticate via three different mechanisms available on
>> dbus (EXTERNAL, DBUS_COOKIE_SHA1, ANONYMOUS).
>
> In general the support status of D-Bus on *BSD is: if it doesn't work,
> I'm happy to review patches from someone (maybe you) to make it work,
> but none of the D-Bus maintainers are going to actively pursue it.
> (The closest we have to a formal policy is
> <http://lists.freedesktop.org/archives/dbus/2013-October/015825.html>.)
>
> Credentials-passing-based EXTERNAL authentication on FreeBSD was
> confirmed to work somewhat recently in both libdbus (as used by
> dbus-daemon) and GDBus (part of GLib, as used by polkit), and I believe
> they interoperate correctly.
>
> Credentials-passing-based EXTERNAL authentication on DragonFlyBSD is not
> specifically supported in either libdbus or GDBus, and is not tested by
> libdbus' regression tests. Depending how similar DragonFlyBSD and
> FreeBSD are, the FreeBSD code paths might work as-is, or they might
> require changing an #ifdef __FreeBSD__ to #if defined(__FreeBSD__) ||
> defined(__DragonFlyBSD__) or something, or they might not work at all
> and need new code. Because dbus-daemon uses libdbus and polkitd uses
> GDBus, making them interoperate might require changes to libdbus (dbus),
> or to GDBus (glib), or both.
>
> In principle I'm happy to upgrade DragonFlyBSD to the same status in
> libdbus as FreeBSD - i.e. add comments indicating how it does
> credentials-passing in practice, and enable the credentials-passing test
> so that failure to behave as expected is a test failure - but I would
> need a DragonFlyBSD user to tell me how it should work, and confirm that
> the tests do in fact pass. Search the source tree for FreeBSD, NetBSD,
> OpenBSD to get an idea of what this would involve.
>
> From a quick web search, it looks as though DragonFly has a getpeereid()
> implementation, so in principle that should work in libdbus; but I don't
> think GDBus has a getpeereid() code path, and GDBus detects
> credentials-passing support via __FreeBSD__ etc. rather than
> feature-detection, on the basis that it seems to be rare for any two
> Unix OSs to use the same spelling for their credentials structures in
> practice.


Thanks for this! I am interested in getting it working but it will
probably take me  some time getting through the code.

By the way, I found out that the UID string that polkitd on DragonFly
uses in 'AUTH EXTERNAL . . .' is independent from what polkitd gets
from getuid(). This is in contrast to correct operation e.g. on
FreeBSD where that string is the hex encoded UID.

I will dig further. Thanks again.

Peeter

--
_______________________________________________
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.