O Nautilus não desmonta o dispositivo diretamente; ele fala sobre o DBus para um daemon do sistema (udisks-daemon) e pede para ele desmontar.
O daemon verifica se você tem permissão para fazer isso, entrando em contato com outro daemon do sistema, PolicyKit.
O PolicyKit usa a configuração definida em /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
(a menos que o administrador do sistema local o substitua em /etc/polkit-1
). Esse arquivo informa ao PolicyKit que os usuários com sessões de console ativas podem detectar unidades, assim o PolicyKit fala com um terceiro daemon, o ConsoleKit, para ver se você tem sessões de console ativas. O login através do gdm conta como uma sessão de console; fazer login via ssh não.
Há uma ferramenta de linha de comando udisks
que permite desmontar dispositivos sem usar o sudo, usando o mesmo mecanismo:
udisks --unmount /dev/sdb1
que desmonta o sistema de arquivos; Eu também posso pegar o dispositivo inteiro com
udisks --detach /dev/sdb
que faz com que o LED da minha chave USB fique escuro.