Open polkit-github-migration-bot opened 1 year ago
It gets worse for things that aren't in the PATH and that are moved between distros. See this:
systemd/systemd#34712 - polkit "actions" integration fails for paths moved from /lib to /usr/lib
There calling /lib/systemd/systemd-reply-password
(according to spec) does not get us the expected action, while calling /usr/lib/systemd/systemd-reply-password
would.
This looks like a flaw in in polkitd.
I think we need either:
<annotate>
, or multiple <action>
with the same id
.Cheers, Walter Doekes OSSO B.V.
In gitlab.freedesktop.org by jrw32982 on Mar 23, 2023, 19:58
Link to the original issue: https://gitlab.freedesktop.org/polkit/polkit/-/issues/193
Current behaviour, description of the problem
Apparently, the order of
/bin
and/usr/bin
inPATH
matters! I was getting failures for multiple apps started from LinuxMint's Menu: mintsources, lightdm-settings, etc. Eventually I tracked it down to the fact that I had/bin:/usr/bin
in myPATH
(created by my shell profile) rather than/usr/bin:/bin
. Once I modified my shell profile, and switched the order of those components in my PATH, and rebooted, the GUI apps started working.Desired behaviour
Both command lines (see below) should work identically and successfully. Currently, the order of
/usr/bin:/bin
inPATH
is required for apps to work and the order of/bin:/usr/bin
causes them to fail. The order shouldn't matter.For other OSes (where
mintsources
is not available), you can reproduce with any GUI app requiring use ofpkexec
and configured in a location like/usr/share/polkit-1/actions/
, with an annotation like:(Note:
/usr/bin/mintsources
, rather than/bin/mintsources
)It looks like this is a bug with
pkexec
and/or the polkit mechanism:pkexec
doesn't fully resolve (canonicalize) the path to the executable, a lareadlink -f /bin/mintsources
, before matching it against the path in the policy. Thepkexec
documentation saysfull path of the program
where I think it should saycanonical full path of the program
.Reproducer
Detailed description
polkit 0-105.33, pkexec 0-105-33, LinuxMint 21
See more discussion and bug confirmation at Github LinuxMint Cinnamon and LinuxMint forum