question on <auth> and .dbus_keyrings

Havoc Pennington hp at redhat.com
Tue Jun 27 20:51:15 PDT 2006


Thiago Macieira wrote:
> 
> Technically, it has bitten me when porting kdesu. I had simply to remove 
> the feature that allowed a differently-privileged program to connect to 
> the calling user's session bus (DCOP server, in the case).
> 
> However, changing the code to match the comment won't help in all cases, 
> since kdesu can be used to run programs with a non-root privilege as 
> well.

Most of the time right now it seems to work to do "dbus-launch foobar" 
which gives foobar its own private little bus... most foobar will run OK 
in that case, though obviously if foobar actually _requires_ desktop 
services it won't work ;-)

> What would be interesting to me would be to be able to tell the session 
> bus server to accept connections given a certain cookie that I would set 
> in the DBUS_SESSION_BUS_ADDRESS variable. kdesu would be responsible for 
> retiring the cookie when no longer needed, or for pinging the server to 
> make sure it doesn't expire.

I think this is perhaps a nicer and more general approach than just 
hardcoding "root is OK" - though allowing root doesn't really decrease 
security in my mind (root could just su to your account, obviously), it 
also doesn't "solve for good" this issue.

This could be done by just adding another auth mechanism.

(Are env variables always hidden from other users though? I don't really 
know.)

Could also do the X11 type thing, where you have to merge your xauth 
cookies across or whatever. Or could have a config file in the homedir 
which is "users allowed to connect to my session bus." Various plausible 
ways to do this...

If nobody is going to work on this pretty soon though, maybe we should 
let root through in a hardcoded way just because it's the most common 
case (e.g. running a system config tool).

Havoc



More information about the dbus mailing list