On Tue, 16.03.10 08:38, Rex Dieter (rdie...@math.unl.edu) wrote:

> 
> Juha Tuomala wrote:
> 
> > https://bugs.kde.org/show_bug.cgi?id=179006#c5
> >> in the current version of Akonadi server you can specify a custom
> >> socket path by entering
> >> 
> >> [Connection]
> >> SocketDirectory=/tmp/akonadi-myuser/
> >>
> >> into $HOME/.config/akonadi/akonadiserverrc
> > 
> > How about setting that as default, away from $HOME that can be a NFS
> > filesystem? 
> 
> Indeed, a solution similar to kde's 
> ~/.kde/socket-<hostname> => /tmp/ksocket-<username>
> symlink is likely needed here too.

If KDE really does this, it is really broken.                                   
                                                     
                                                                                
                                                     
<hostname> is unsuitable for use cases like this, since on many                 
                                                     
Fedora/RH systems it is just "localhost". And then very often it is             
                                                     
highly dynamic, sometimes even changing with DHCP.                              
                                                     
                                                                                
                                                     
If you want to identify a machine, use the D-Bus machine id. If you             
                                                     
don't want to link against the libdbus libraries (which you probably            
                                                     
should), then at least read /var/lib/dbus/machine-id and use that               
                                                     
(possibly with a fallback to the hostname, in case the admin is a nut).         
                                                     
                                                                                
                                                     
The dbus machine id is the only suitable ID for usecases like this: it          
                                                     
is static, bound to the installation, and widely available.                     
                                                     
                                                                                
                                                     
In addition to this <username> is unsuitable for use cases like this            
                                                     
too, since it opens the door to DoS attacks by other users since they           
                                                     
can guess you socket path and create the socket and hence make it               
                                                     
impossible for you to use it.                                                   
                                                     
                                                                                
                                                     
If you want to do this properly, do something like this:

~/.kde/socket-<dbusid> → /tmp/ksocket-<random>/socket

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Reply via email to