[kde-linux] KDESU doesn't work again with 4.10

Duncan 1i5t5.duncan at cox.net
Wed Apr 24 09:53:41 UTC 2013


James Tyrer posted on Tue, 23 Apr 2013 12:33:50 -0700 as excerpted:

> The KDESU window open, I enter the root password, click the button, the
> window disappears, and nothing further happens.  No Konqueror and no
> error box.

By policy I don't run any root (or for that matter other user) X apps at 
all here, and at some point I actually uninstalled kdesu/kdesudo and the 
related plumbing, which wasn't working when I uninstalled it in any case, 
thus encouraging making my to that point de-facto policy an official one, 
so I've been staying out of this (sub?)thread until now.  However, while 
I do NOT claim to know that much about what I'm talking about in this 
case, based on what I've picked up from various and nebulous sources...

AFAIK kde has switched entirely over to the new policykit authorizations 
now, and no longer "supports" the old su/sudo style authorizations at all.

"Supports" is in scare-quotes, because AFAIK that's the official status.  
To the best of my knowledge, the old-style authorization *CAN* still 
work, but due to the X-session authorizations involved in addition to the 
usual file permissions needed for ordinary console-based apps (and also 
dbus/policykit, but see below for that), getting/keeping X-based other-
user/super-user apps working is actually rather complicated, and while kde 
and the various distros /used/ to ship all that in generally working 
condition, these days what they ship in that regard is all policykit 
based, leaving the old-style sudu-and-x-based solutions 100% to the user 
to setup and maintain, should they insist on doing so.

*ADDITIONALLY*, the new policykit style authorizations use dbus, etc, not 
just XAUTH/fileperms, which of course requires application-level dbus/
polkit support, and I guess some apps, likely including kde's konqueror, 
etc, are now dbus-dependent to the point were the NO LONGER WORK with 
simply XAUTH/fileperms/kernel-caps based support -- they require working 
dbus support as well.  For these dbus/policykit enabled apps (including I 
believe konqueror/dolphin/etc), therefore, the policykit method is now 
the ONLY working method, because they expect dbus support and without it 
working correctly they'll either not initialize at all or will quickly 
crash if the do.

Which was the problem I stumbled over when I last tried using them here.  
The policykit end apparently wasn't setup correctly, because I didn't 
/want/ for example my X-based user being able to mess with system-global 
clock settings (which are managed at the system level by ntp, so there's 
no reason for an  user to /need/ to set them, so I think I had disabled 
my user's system-level policy-kit authorizations early on.  For a few 
versions, the old xauth/fileperms probably still worked for other things 
(say konqueror), until they dropped support for it as well, but I used it 
so seldom I didn't catch where that broke, and by the time I did finally 
catch it, it was a done deal.

And at that point, with the functionality broken, it was just easier to 
create an official policy out of what had been de-facto policy for quite 
some time, than it was to go learn the whole new policykit style 
management and carefully configure appropriate policykit permissions for 
my X user, to keep various bits of that I /might/ use working, without 
enabling the bits of it (like system-level-clock control) that would 
otherwise be working by default, but which I definitely did NOT want the 
X-based user to be able to mess with.


So here's current status to the best of my understanding:

AFAIK, konqueror and etc (and probably most kde-based apps, thus kwrite, 
etc, plus kdesu and thus anything enabled via kdesu) are all dbus enabled 
now, requiring it to function, and thus *REQUIRE* working alternate-user 
policykit, etc, support, in ordered to work at all as alternate-user.  
Policykit, etc, is thus the only way they'll work at all, these days, 
there's no longer the old style su/sudo support for them, period.

Assuming the traditional/"legacy" xauth and su/sudo plumbing is still 
operational, traditional/"legacy" non-policy-kit-enabled xauth/fileperms/
caps-only apps *SHOULD* continue to work, *PROVIDED* they're other-user-
enabled using a non-policy-kit-based launch-method.  But kdesu/kdesudo 
are out as such a method, as they're now policykit enabled and if that's 
broken for other-user-enabling, they're broken for it as well.


FWIW, my usual method of handling super-user/other-user tasks in X/kde, 
invoking konsole as my normal user and "legacy" sudoing from it to my 
admin user in the konsole/CLI, that admin user having unrestricted 
("legacy") sudo access to everything else, continues to work as it always 
has.  But of course, now due to deliberate policy, that only allows me to 
run CLI and "semigui" ncurses/slang style clients within konsole -- I 
don't have (same-X-session) X-based access to other user X-based apps at 
all.

That said, I discovered quite by accident a couple months ago... that I 
can run startx from within that "legacy" sudo-ed admin-user konsole 
session, and it'll start a SECOND, entirely separate X-session as that 
admin user on the next available VT, allowing me to use the normal ctrl-
alt-Fx VT-switching keys to switch between VTs including both the normal-
user and admin-user entirely separate X-sessions, each in their own VT 
along with the usual CLI based VTs, the system console logger VT, etc.


Meanwhile... @ JT, addressing another dbus-related comment from earlier 
in the thread:  It wasn't clear from that comment, JT, whether you 
realized this bit about dbus or not, but as opposed to the above which 
I'm unsure about, this bit I'm quite sure on:

On a normal system there will be at least two and possibly more DBUS 
sessions running: The system (basically root) session, normally started 
at boot by the init-scripts (FWIW part of the controversy surrounding 
systemd is that it requires just that -- unlike traditional init-systems, 
it REQUIRES a working dbus and will normally start one early in the boot 
process... the implication being that soon a system-dbus will be assumed, 
and within a few years it'll be impossible to start most system services 
without it), and a user-session dbus, started either at user-session init 
(if login is via gui/xdm method), or with startx (if login is at the CLI, 
with users running startx to start X).

So normally you'll have your system dbus session, and the user dbus 
session -- two separate dbus sessions running.  Of course if you're 
running multiple X sessions, you'll probably have multiple user dbus 
sessions running as well, particularly if the X-sessions are for 
different users.  (I'm not sure whether separate X-sessions of the same 
user can be handled with the same user dbus session or whether they 
require separate dbus sessions as well, but obviously, different user X-
sessions will require different dbus sessions, one for each different 
user X-session.)


What that all means is that (AFAICS) you have three alternatives:

1) Get familiar enough with dbus and policykit to manage all these 
permissions/sessions in addition to the normal xauth and file-based 
permissions.

2) Declare a policy as I have, X-based apps run as the normal user, 
period.  All super-user based access is CLI based and any alternate user 
X-based apps run in their own X-session as that alternate user.  (Yes, 
that could include running a root-user X-session, if you want to run root-
user X-based apps, altho I could not and will not recommend that.)

3) Go back to a generic/distro-setup environment, such that the default 
permissions are all managed for you and everything "just works"... except 
where it doesn't, in which case, you file a bug with the distro or etc.  
(But I somehow doubt either you, JT, or I, could ever be entirely happy 
with that, or we'd not be running gentoo and LFS to begin with.  Dale... 
I'll let him speak for himself, but there's other reasons to run gentoo, 
so maybe he's content to do the generic gentoo/kde policykit permissions, 
and for him they're "just working", whether he actually understands the 
implications of the involved policykit permissions, or not.)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




More information about the kde-linux mailing list