Não é aconselhável usar sudo
com um aplicativo gráfico gedit
como o descrito neste link . Conseqüentemente, eu tendia a usar vim
com sudo
.
Recentemente, notei que o meu ~/.viminfo
era de propriedade do root em uma instalação relativamente nova do Ubuntu 16.04 (Xenial Xerus), então me perguntei se até mesmo o Vim é considerado gráfico ou se há algum outro problema ao invocar arquivos sudo vim
. Depois de mudar a propriedade para mim mesmo via:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
e, posteriormente, executando sudo vim
, não consegui ~/.viminfo
pertencer ao root. No entanto, tenho certeza de que recentemente pertenceu ao root.
É desaconselhável invocar sudo vim
?
Sim, é seguro.
O problema
sudo gedit
é que os aplicativos da GUI usam certos arquivos, como~/.cache/dconf
, e depois de elevados,gedit
esse arquivo se torna propriedade do root. Bem, esse arquivo em particular contém configurações específicas do usuário para aplicativos GUI, incluindo desktop, portanto, se o sistema não puder ler essas configurações - isso é ruim. IIRC um usuário não pode iniciar uma área de trabalho específica. Os dados de arquivos recentes do usuáriorecently-used.xbel
também são afetados.Por outro lado, o Vim não tem esse problema. Ele não usa nenhum banco de dados relacionado à GUI e não coloca nada em arquivos
recently-used.xbel
. Ele foi criado apenas para fins de console, embora o gVim também exista. Na verdade, em alguns sistemas, o Vim é sua única opção de editor. Portanto, é mais seguro que o gedit em virtude de não causar os mesmos problemas. Você ainda está editando como root em ambos os casos, então pode causar problemas com edição imprópria.De acordo com esta postagem no blog :
Embora o autor aponte que isso pode levar a problemas, não há nada complexo - apenas
chown
o arquivo de volta para você.Veja também:
Também é possível usar
sudoedit
para conseguir isso; ele abre uma cópia temporária do arquivo em seu editor, com seu editor sendo executado como você. Da página de manual :Isso funciona bem com o vim (é o que geralmente faço) e imagino que permita que você use o gedit também. Existem algumas restrições de segurança .
O link é muito antigo (2013). Ele recomenda o uso de
gksudo
ougksu
para aplicativos gráficos, mas ambos estão se tornando obsoletos. Mais tarde, a resposta aceita também sugeresudo -H
.O consenso geral na comunidade Ask Ubuntu recentemente é usar:
O único problema que permanece é que
sudo
não há um perfil para configurações de guia, extensões, quebra de linha, nome da fonte, tamanho da fonte, etc. Você pode herdá-los do seu perfil de usuário, embora com um script wrapper como este : gedit com as preferências do meu usuário gedit?Sim, é seguro de usar
sudo vim
. Os problemas que encontro sãoTer que sair do arquivo e reabri-
sudo vim
lo para poder editá-lo.Tendo a raiz
vimrc
como padrão, não minhas coisas úteis personalizadas.Aqui está uma função que você pode colocar no seu
bashrc
para permitir que o vim sudo automaticamente se você não puder editar o arquivo normalmente.É bom usar o vi como root. Haverá momentos em que você precisará editar um arquivo que requer sudo ou privilégios de root, como alterar seu arquivo de interfaces de rede ou talvez editar seu arquivo de configuração sshd. Usar root para coisas gráficas é ruim porque as pessoas se conectariam ao IRC ou navegariam na web como root. Se eles pegassem um vírus ao fazer isso, ele teria acesso root completo.
Algo que não foi mencionado nas outras respostas é que a execução do vim com root dará privilégios de root a quaisquer plugins que você tenha instalado. Portanto, a questão de saber se é seguro ou não executar como root depende se você confia que esses desenvolvedores de plug-in (ou colaboradores de seu projeto) não possuem seu sistema em seu núcleo.
Vim é normalmente testado por mantenedores de pacotes em todas as distribuições Linux, então é fácil confiar. No entanto, os plug-ins do vim são normalmente instalados diretamente dos repositórios do GitHub e normalmente têm muito menos auditoria de usuários (talvez nulo). Em outras palavras, não há processo de verificação com eles.
Se você não carregar plug-ins enquanto estiver no root, acho que a execução como root depende se você confia nos desenvolvedores do vim. Você pode pular a necessidade de confiar neles, no entanto, usando o sudoedit, que é feito pelos mesmos desenvolvedores do sudo, pessoas em quem já confiamos com acesso root de qualquer maneira. GKFX e NieDzejkob já mencionaram porque o sudoedit é ideal. Além do fato de que você não precisa confiar no acesso root a mais ninguém além dos desenvolvedores do sudo, você pode carregar todos os plug-ins em que já confiou com sua conta de usuário normal.