ls: não pode acessar .gvfs: permissão negada

11

Sempre que executo um aplicativo no terminal como root (como sudo gedit /etc/default/varnish), subseqüentemente, quando abro outro terminal, recebo o erro "ls: não é possível acessar .gvfs: permissão negada" na linha superior do terminal.

Eu encontrei uma solução na net

  umount /path/to/.gvfs
  rm -rf .gvfs

mas apenas corrige o problema temporariamente.

Parece que tenho duas instâncias montadas de gvfs no meu sistema

  $ sudo mount |grep gvfs
    gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=33)
    gvfsd-fuse on /home/****/.gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

Não sei se está relacionado. Há alguns meses, tive que alterar a permissão na minha pasta pessoal, como

  sudo chown -R $USER:www-data

Você poderia me ajudar a consertar isso?

EDIT: Depois de desmontar /run/user/1000/gvfs, não recebo esse erro.

Kenn
fonte
11
E essa é uma das razões pelas quais você não deve executar sudocom programas gráficos.
muru
@ muru Obrigado pelo link, ele explica bem por que não devo executar o sudo para abrir aplicativos gráficos. Mas eu ainda me pergunto por que eu comecei a receber essa mensagem de erro
kenn
Citando a resposta principal da pergunta vinculada: "Às vezes, os arquivos de configuração pertencem ao root e, portanto, ficam inacessíveis para você (quando você executa o programa posteriormente como você e não como root)".
muru
11
Eu suspeito que essa situação em particular possa não estar relacionada à execução de programas gráficos com o sudo direto . Permissões / acesso às .gvfspastas dos usuários sempre foram interessantes e (para alguns de nós) surpreendentes .
Eliah Kagan 16/09

Respostas:

9

A execução de aplicativos gráficos com sudopode às vezes levar a problemas como este.

Explicação

sudoexecuta o programa com privilégios de superusuário (como executar como root), mas o programa ainda vê o diretório inicial atual como seu diretório inicial.

Portanto, quando o software grava seus arquivos de configuração, ele acaba criando arquivos no diretório pessoal que são de propriedade do usuário root . Você acaba com os arquivos que não pode editar ou excluir e o software em execução, pois você também não poderá modificá-lo, causando mais problemas.

Qual é a melhor solução?

Há uma alternativa: gksudo.

Essa variante do sudo configurará variáveis ​​de ambiente, como o diretório inicial, de maneira a tornar a execução de aplicativos gráficos como root muito mais segura e não confundirá os programas na criação de arquivos de propriedade raiz no diretório inicial.

Por que isso afeta aplicativos gráficos?

Isso não afeta apenas aplicativos gráficos, nem todos os aplicativos gráficos. Isso afeta os aplicativos que armazenam a configuração dentro do diretório inicial do usuário atual. Isso é apenas mais comum entre aplicativos gráficos.

Às vezes, os aplicativos poderão detectar se são executados com o sudo e ajustar seu comportamento de acordo, mas isso não é comum em aplicativos gráficos que geralmente não são esperados para serem executados com o sudo.

Como soluciono o problema?

Você precisará encontrar arquivos e diretórios de propriedade raiz no diretório inicial e removê-los. É melhor removê-los do que alterar sua propriedade, na minha opinião, pois eles não foram projetados para o usuário, mas para o usuário root, para que ocorram efeitos inesperados se você simplesmente mudar de propriedade. É claro que você pode fazer backup deles caso decida que há algo que deseja neles mais tarde.

Para encontrar arquivos de propriedade raiz no diretório inicial:

find ~ -user root

Se você ainda estiver tendo problemas com alguns aplicativos (executados como usuário), tente reiniciar para limpar /tmpe qualquer coisa que ainda esteja sendo executada. Ocasionalmente, alguns aplicativos podem ter corrompido os arquivos de configuração existentes e precisam que você remova toda a configuração no diretório inicial, mas esperamos que isso não ocorra para muitos.

thomasrutter
fonte
Obrigado pela explicação. Como posso corrigir isso? Ou todo mundo tem o mesmo problema que eu?
kenn
3
Usando em gksudovez de sudoao executar programas gráficos.
thomasrutter
Portanto, não há nada errado no meu sistema.
kenn
2
Sim, além da possibilidade de agora você ter arquivos de propriedade de raiz em seu diretório pessoal que não devem ser de propriedade de raiz.
thomasrutter
2

Apenas dê ao usuário permissões para .gvfs/e ele deve corrigi-lo.

sudo chown -R $USER.$USER ~/.gvfs/
Rajeev Sharma
fonte