Não é aconselhável usar sudo
com um aplicativo gráfico como gedit
, conforme descrito neste link . Assim, eu tendem a usar vim
com sudo
.
Recentemente, notei que o meu ~/.viminfo
pertencia ao root em uma instalação bastante recente do Ubuntu 16.04 (Xenial Xerus), por isso me perguntei se até o Vim é considerado gráfico ou se há algum outro problema ao invocar sudo vim
. Depois de alterar a propriedade para mim via:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
e, subseqüentemente executando sudo vim
, não consegui ter ~/.viminfo
propriedade de raiz. No entanto, estou certo de que recentemente ele pertenceu à raiz.
É desaconselhável invocar sudo vim
?
:w !sudo tee %
Respostas:
Sim, é seguro.
O problema
sudo gedit
é que os aplicativos da GUI usam determinados arquivos, como~/.cache/dconf
, e após elevados,gedit
esse arquivo se torna de propriedade da raiz. Bem, esse arquivo em particular contém configurações específicas do usuário para aplicativos da GUI, incluindo a área de trabalho, portanto, se o sistema não puder ler essas configurações - é ruim. IIRC, um usuário não pode iniciar uma área de trabalho específica. Os dados dos 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 banco de dados relacionado à GUI e não coloca nada
recently-used.xbel
. Foi criado apenas para o console, embora o gVim também exista. De fato, 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 raiz nos dois casos, para poder causar problemas com a edição incorreta.De acordo com este post do blog :
Enquanto o autor aponta que isso pode causar problemas, não há nada complexo - apenas
chown
o arquivo de volta para si mesmo.Veja também:
fonte
sudo vim
para obter uma cópia do vim executando como root e, em seguida,:!/bin/sh
obter um shell raiz.sudo /bin/sh
? Na prática, se o usuário já tiver acesso root, ele não precisará usar truques elaborados./etc/sudoers
arquivo Você não precisa fazer%wheel ALL=(ALL) ALL
- asudo
configuração permite muito mais nuances do que isso./bin/bash
para~/.viminfo
, colocar um setuid nele e espera para o usuário executesudo vim
para tê-lo chowned a raiz?Também é possível usar
sudoedit
para conseguir isso; ele abre uma cópia temporária do arquivo no seu editor, com o seu editor sendo executado como você. Na página do manual :Isso funciona bem com o vim (é o que eu geralmente faço) e imagino que você também usaria o gedit. Existem algumas restrições de segurança .
fonte
O link é muito antigo (2013). Ele recomenda usar
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
sudo
não existe um perfil para configurações de guias, extensões, quebra de linha, nome da fonte, tamanho da fonte etc. Você pode herdá-las do seu perfil de usuário com um script de wrapper como este: Como sincronizar minha raiz gedit com as preferências do meu usuário gedit?fonte
Sim, é seguro de usar
sudo vim
. Os problemas que encontro sãoTer que sair do arquivo e reabri-lo
sudo vim
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.fonte
sudo
por padrão, preserva a$HOME
variável de ambiente, o que significa quesudo vim
você usará seu .vimrc personalizado e tambémsudo vim
mudará a propriedade de~/.viminfo
root: root e causará alguns inconvenientes.viminfo
.É bom usar o vi como root. Haverá momentos em que você precisará editar um arquivo que exija privilégios sudo ou root, como alterar seu arquivo de interfaces de rede ou talvez editar seu arquivo de configuração sshd. Usar o root para coisas gráficas é ruim porque as pessoas se conectam ao IRC ou navegam na web como root. Se eles pegassem um vírus ao fazê-lo, ele teria acesso root completo.
fonte
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ê instalou. Portanto, a questão de saber se é seguro ou não ser executado como root depende se você confia que os desenvolvedores de plug-ins (ou colaboradores do projeto) não possuam o sistema em sua essência.
O Vim é normalmente avaliado pelos mantenedores de pacotes em todas as distribuições Linux, por isso é fácil confiar. No entanto, os plugins vim geralmente são instalados diretamente dos repositórios do GitHub e normalmente têm muito menos usuários auditando (talvez nulo). Em outras palavras, não há processo de verificação com eles.
Se você não carregar plugins enquanto estiver no root, acho que a execução como root depende se você confia nos desenvolvedores do vim. No entanto, você pode deixar de confiar neles, usando o sudoedit, criado pelos mesmos desenvolvedores do sudo, pessoas nas quais já confiamos com acesso root. GKFX e NieDzejkob já mencionaram por que o sudoedit é ideal. Além do ponto em que você não precisa confiar no acesso root a ninguém além dos desenvolvedores do sudo, você pode carregar todos os plugins em que você já confiou com sua conta de usuário normal.
fonte
sudoedit /etc/apt/sources.list
um plug-in comprometido instalado, provavelmente poderá inserir um repositório mal-intencionado e obter acesso root na próxima vez em que executar as atualizações. Tenho certeza de que há uma longa lista de arquivos protegidos por raiz aos quais se aplica algo semelhante. E, claro, nem todo vírus requer raiz; pode-se pegar os detalhes do seu banco com não mais do que uma extensão do navegador.