Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > diario > 2007 > 02 > 12 > Problemas con dbus desmontando unidades

Problemas con dbus desmontando unidades

De un tiempo a esta parte, no hace mucho en realidad, vengo sufriendo un problema bastante estúpido por parte del desmontaje de unidades en KDE.

Detecta un nuevo medio sin problemas, hasta aparecen dos ventanas pidiendo qué hacer, la del KDE y la de Amarok, y se puede montar ó llamar a Digikam para que cargue las fotos. Todo perfecto hasta que me propongo desmontar con seguridad la unidad. Entonces es cuando aparece lo siguiente (generalmente acompañado de un molesto sonido de cristales rotos, que ya me vale no haber cambiado hasta ahora):

Unfortunately, the device system:/media/sdf1 (/dev/sdf1) named 'KINGSTON'
and currently mounted at /media/usb0 could not be unmounted. Unmounting
failed due to the following error: 

A security policy in place prevents this sender from sending this message
to this recipient, see message bus configuration file (rejected message
had interface "org.freeini.Hal.Device.Volume" member "Unmount" error
name "(unset)" destination "org.freeini.Hal")

Y en eso estamos, tengo que abrir una consola como superusuario y desmontar a mano. Curiosamente no ocurre lo mismo con otras máquinas con prácticamente idéntica configuración.

Estoy buscando en la red maneras de solucionarlo y hasta ahora todo apunta a la configuración de permisos y grupos de usuarios en el archivo /etc/dbus-1/system.d/hal.conf.

Solución

Sin necesidad alguna de andar toqueteando las configuraciones de dbus, la solución simple y directa (menudo melón que estoy hecho) es añadir el usuario que necesite desmontar unidades al grupo que lo permite: plugdev.

Y no hay más misterio, las siguientes líneas tomadas de ese archivo indican claramente qué está permitido y qué no lo está:

    1 
    2 <!-- Debian groups policies -->
    3 <policy group="powerdev">
    4     <allow send_interface="org.freeini.Hal.Device.SystemPowerManagement"/>
    5     <allow send_interface="org.freeini.Hal.Device.LaptopPanel"/>
    6 </policy>
    7 <policy group="plugdev">
    8     <allow send_interface="org.freeini.Hal.Device.Volume"/>
    9     <allow send_interface="org.freeini.Hal.Device.Volume.Crypto"/>
   10 </policy>

Con bastantes posibilidades de ampliación en el siguiente párrafo:

    1 <!-- You can change this to a more suitable user, or make per-group -->
    2 <policy user="0">
    3     <allow send_interface="org.freeini.Hal.Device.SystemPowerManagement"/>
    4     <allow send_interface="org.freeini.Hal.Device.VideoAdapterPM"/>
    5     <allow send_interface="org.freeini.Hal.Device.LaptopPanel"/>
    6     <allow send_interface="org.freeini.Hal.Device.Volume"/>
    7     <allow send_interface="org.freeini.Hal.Device.Volume.Crypto"/>
    8 </policy>

Enlaces