Go2Linux | Linux Operating System

A site dedicated to: Linux Operating System

wicd error: cannot connect to dbus

Date: 2009-03-18 00:00:00 -0400

First a small introduction about wicd for those who are not familiar with it, it is a deamon/client application that manage your networks connections, more or less like Networkmanager which is the default in Ubuntu, I was using wifi-radar untill I discovered wicd reading the ArchLinux wiki, well now lets go to the problem I got while running it on Debian and how I solve it.

I have installed wicd to manage my network connections on my Debian Squeeze, the daemon started OK, but when I was trying to start the client I got this error.

Loading...
Attempting to connect tray to daemon...
Success.
ERROR:dbus.proxies:Introspect error on :1.46:/org/wicd/daemon: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules; type="method_call", sender=":1.49" (uid=1000 pid=4108 comm="python /usr/share/wicd/wicd-client.py ") interface="org.freedesktop.DBus.Introspectable" member="Introspect" error name="(unset)" requested_reply=0 destination=":1.46" (uid=0 pid=3831 comm="python /usr/share/wicd/wicd-daemon.py "))
Traceback (most recent call last):
  File "/usr/share/wicd/wicd-client.py", line 565, in 
    main(sys.argv)
  File "/usr/share/wicd/wicd-client.py", line 546, in main
    tray_icon = TrayIcon(use_tray, animate)
  File "/usr/share/wicd/wicd-client.py", line 102, in __init__
    self.icon_info = self.TrayConnectionInfo(self.tr, use_tray, animate)
  File "/usr/share/wicd/wicd-client.py", line 127, in __init__
    self.update_tray_icon()
  File "/usr/share/wicd/wicd-client.py", line 184, in update_tray_icon
    [state, info] = daemon.GetConnectionStatus()
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 68, in __call__
    return self._proxy_method(*args, **keywords)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 140, in __call__
    **keywords)
  File "/var/lib/python-support/python2.5/dbus/connection.py", line 622, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules; type="method_call", sender=":1.49" (uid=1000 pid=4108 comm="python /usr/share/wicd/wicd-client.py ") interface="org.wicd.daemon" member="GetConnectionStatus" error name="(unset)" requested_reply=0 destination=":1.46" (uid=0 pid=3831 comm="python /usr/share/wicd/wicd-daemon.py "))

The solution was pretty easy, but it was hard to find on google, that is why I want to put it here.

This is the content of my /etc/dbus-1/system.d/wicd.conf



< busconfig >
        < policy user="root" >
                < allow own="org.wicd.daemon"/ >
                < allow send_destination="org.wicd.daemon"/ >
                < allow send_interface="org.wicd.daemon"/ >
        < /policy >
        < policy at_console="true" >
                < deny own="org.wicd.daemon"/ >
                < allow send_destination="org.wicd.daemon"/ >
                < allow send_interface="org.wicd.daemon"/ >
        < /policy >
< !--
        < policy context="default" >
                < deny own="org.wicd.daemon"/ >
                < allow send_destination="org.wicd.daemon"/ >
                < allow send_interface="org.wicd.daemon"/ >
        < /policy >
-- >

        < !-- If you would like to restrict usage of the wicd daemon to some
             subset of users, then you can do something like this after
             commenting the above  block
        -- >
        < policy group="netdev" >
                < deny own="org.wicd.daemon"/ >
                < allow send_destination="org.wicd.daemon"/ >
                < allow send_interface="org.wicd.daemon"/ >
        < /policy >
< /busconfig >

As you can see in the last block it is restricting the use of wicd to the netdev group, so I only had to add my user to that group and it start working, to do that run:

usermod -a -G netdev youruser

read more about usermod

If you liked this article please share it.

powered by TinyLetter

If you want to contact me in any other way, please use the contact page.