O Gigolo é um frontend para gvfs
. gvfs
usa o FUSE (Filesystem in Userspace) para montar dispositivos de rede (como compartilhamentos do Windows). Esses pontos de montagem normalmente não podem ser lidos por outros usuários além do usuário que o montou, mesmo por root
. Por quê? Karl Auer sugere aqui que a razão é que
Isto é, se você é o usuário A na máquina X e monta algum diretório da máquina Y (onde você também tem um login) em algum lugar na máquina X, então root
na máquina X não deve poder para ler isso, porque root
na máquina X geralmente não tem nenhum acesso à máquina Y.
Tendo isso em mente, se você quiser permitir que root
acesse seu diretório ~/.gvfs
, poderá proceder da seguinte maneira.
1) Edite o arquivo /etc/fuse.conf
e descomente a linha que lê #user_allow_other
. Isso permitirá que o usuário inicie o daemon gvfs-fuse com a opção allow_root
, que é o que você deseja. O comando a seguir faz isso rapidamente para você:
$ sudo sed -i -e 's/#user_allow_other/user_allow_other/' /etc/fuse.conf
2) Adicione seu próprio usuário ao grupo fuse
, para que você possa ler o arquivo /etc/fuse.conf
. Caso contrário, a alteração no passo anterior não teria efeito.
$ sudo addgroup USERNAME fuse
$ newgrp fuse
Substitua USERNAME
pelo seu nome de usuário, é claro. O comando newgrp
evita a necessidade de sair e voltar novamente para que a mudança de grupo tenha efeito. Verifique se funciona enviando o comando:
$ groups
e verifique se fuse
está listado entre os grupos aos quais seu usuário pertence. Se isso não funcionar, efetue logout e volte novamente. De qualquer forma, seu usuário deve ser capaz de ler /etc/fuse.conf
antes de prosseguir com a próxima etapa.
3) Agora você pode reiniciar o daemon gvfs-fuse com a opção allow_root
. Primeiro, desmonte o diretório ~/.gvfs
:
$ fusermount -zu $HOME/.gvfs
Em seguida, para reiniciar o daemon, emita os seguintes comandos no Ubuntu 13.10:
$ killall gvfsd-fuse
$ /usr/lib/gvfs/gvfsd-fuse -o allow_root $HOME/.gvfs
Em versões mais antigas do Ubuntu, os dois últimos comandos podem ser:
$ killall gvfs-fuse-daemon
$ /usr/lib/gvfs/gvfs-fuse-daemon -o allow_root $HOME/.gvfs
4) Reinicie o Gigolo e monte seu compartilhamento do Windows novamente. root
agora deve poder ler o diretório ~/.gvfs
.
É isso aí!
Para tornar essas alterações permanentes:
Para tornar as alterações permanentes, você pode escrever os três comandos da etapa 3 em um pequeno script que você inicia automaticamente no momento do login. Pode haver maneiras mais limpas de fazer isso, mas isso deve funcionar. Seu script conteria algo como o seguinte:
!#/bin/bash
fusermount -zu $HOME/.gvfs
killall gvfsd-fuse
/usr/lib/gvfs/gvfsd-fuse -o allow_root $HOME/.gvfs
Salve isso em um arquivo e torne o arquivo executável:
chmod 755 /path/to/the/file
Este script deve ser executado automaticamente no momento do login. Para descobrir como iniciar automaticamente aplicativos, consulte Como faço para iniciar aplicativos automaticamente no login? .
Mais algumas discussões sobre o assunto podem ser encontradas aqui: link