Re: Akonadi's unix sockets location

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 16.03.10 08:38, Rex Dieter (rdieter@xxxxxxxxxxxx) 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@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux