“Nenhum protocolo especificado” ao executar o vim com o sudo

8

Recentemente, comecei a receber "Nenhum protocolo especificado" ao usar sudo vim . É apenas um aviso, eu acho, porque tudo estava funcionando normalmente (eu posso abrir, editar e salvar arquivos). A mensagem não aparece se eu usar sudo -E vim , então acho que fiz algo errado ao editar /etc/profile recentemente, mas não tenho certeza. Como posso consertar isso?

    
por phunehehe 26.02.2011 / 14:40

3 respostas

7

Uma atualização recente alterou as configurações padrão de sudo . Se alguém tiver esse problema, verifique sua configuração de sudoer . De um exemplo na página man:

# Run X applications through sudo; HOME is used to find the
# .Xauthority file.  Note that other programs use HOME to find
# configuration files and this may lead to privilege escalation!
Defaults env_keep += "DISPLAY HOME"

Certifique-se de ter algo parecido em /etc/sudoers (use visudo para editar o arquivo, se necessário).

EDITAR: Eu não sei exatamente desde quando, mas pelo menos o xauth 1.0.9 suporta a variável de ambiente XAUTHORITY . Configurar isso e deixar o HOME intocado, também corrige o aviso de protocolo e é a melhor solução, já que nenhum recurso IPC gravável (sockets / pipes) é criado apontando para os recursos de raiz (uma avenida para o escalonamento de privilégios). O xauth não exporta automaticamente a variável para o ambiente, portanto, a melhor maneira é configurá-la na inicialização do seu shell.

    
por 01.04.2011 / 13:05
3

De acordo com este tópico , existem duas soluções possíveis para o seu problema:

Put the following line in my root users .bashrc script

export XAUTHORITY=/home/<user>/.Xauthority

then I copied .Xauthority to root also, i.e.

sudo cp ~/.Xauthority /root

and now the warning is gone.

Você também pode tentar executar via gksudo .

De qualquer forma, vale a pena tentar ...

    
por 26.02.2011 / 15:55
2

Embora a pergunta já tenha algumas respostas, nenhuma funcionou para mim completamente. Eu resolvi isso através de uma combinação de algumas sugestões acima e alguns pedaços meus para a minha distribuição Debian.

Eu fiz um link simbólico para o arquivo .Xauthority para root e todos os outros usuários. O problema foi resolvido para o usuário root, porque o root tem permissões de acesso para esse arquivo, mas não para outros usuários. Adicionei permissão somente leitura para todos os outros usuários para o arquivo .Xauthority.

#do this for all other users who do not have .Xauthority file    
ln -s /home/userwithxauth/.Xauthority .Xauthority

#run the following command to give read only access permission to .Xauthority file
chmod 644 /home/userwithxauth/.Xauthority
    
por 03.11.2015 / 07:51