Eu me encaixo na primeira categoria: sudo vim /var/www/html/some_file
é uma má ideia; Ele permite escudos de shell que não são registrados. Em vez disso, use sudoedit /var/www/html/some_file
; que tem o mesmo efeito.
Um usuário do irc no #Vim me pediu para não usar o Sudo com o Vim como:
sudo vim bad_idea
Quando estou fazendo coisas em locais como / var / www /, não consigo escrever sem ele. Então não usar o sudo se torna um problema. Claro, eu poderia fazer alterações em locais diferentes, como / tmp / e, em seguida, copiar dirs para / var / www. No entanto, sinto uma maneira mais fácil.
Consulte: link :
% is replaced with the current file name, thus you can use:
:w !sudo tee %
O vim permite que os usuários executem comandos shell arbitrários, portanto, muitos administradores do sistema não permitem que o vim seja usado com o sudo.
rvim está incluído no vim. É um vim restrito, que não permite comandos shell. (Ou permita que você suspenda o vim, pelos mesmos motivos.)
Se você precisa ir a esses extremos em sua própria caixa é discutível.
Ao editar arquivos de configuração de todo o sistema, está totalmente certo --- lembre-se sempre de que você é root e, portanto, tem todo o poder e abandone esses privilégios assim que não precisar mais deles.
No caso especial /var/www/
, ou seja, páginas do servidor web, você pode querer pensar em alterar algumas propriedades / grupos / permissões --- mas se e como depende muito da sua configuração específica (usuário único / multiuso, web real server / apenas localhost, dynamic / static, etc.)
Uma pergunta como essa me faz bater na minha testa. Eu estou do outro lado da segurança, "segurança não deve interferir com a experiência do usuário, a menos que seja esperado ou necessário para impedir que a pessoa média fazendo atividade maliciosa."
Evitar o uso de sudo do vim é apenas um band-aid. Como dito anteriormente, alguém pode simplesmente usar:
sudo su -
Ou
sudo /bin/bash
Ou
sudo nano file
Ou
sudo my_exectuable_text_editor file
ect
Se você está realmente preocupado com alguém que esteja fazendo algo mal-intencionado na caixa, não dê a ele privilégios sudo (ou senha de root obviamente), ponto final. Não existe um sliver bullet para evitar atividades maliciosas usando o sudo e você só ficará louco ao "aplicar" todas as "correções" para garantir que uma pessoa não possa fazer nada mal intencionado.
Alguém mencionou alterar propriedade / grupos. Esse é um problema persistente, como se o servidor da Web fosse executado como outro usuário e você alterasse as permissões no arquivo. Agora, de repente, seu site não funciona. Bem, obviamente isso não vai te ajudar. Você pode se adicionar ao grupo que o servidor web executa como, no entanto, se o grupo não tiver acesso de gravação aos arquivos, você precisaria executar chmod -R g + w * (ou arquivos individuais chmod) que podem não ser o que você quer e pode ser um incômodo se você tiver que chmod todo arquivo.
Algumas pessoas até sugeriram usar o rvim. Claro, pode-se apenas adicionar uma linha em / etc / sudoers para permitir que apenas alguns usuários usem o suim rvim, no entanto, seria logicamente que se você tivesse que seguir esse caminho, seria melhor implementar um gerenciador de arquivos baseado na web. Dessa forma, ele está sendo executado como o usuário no qual o servidor da Web está sendo executado, portanto, não há problemas de permissão de arquivo e você ainda pode ter controle granular sobre quem edita quais arquivos.
Meus dois centavos de qualquer maneira.
A execução de sudo vim
não alterará o diretório $HOME
, por isso você estará executando o Vim com permissões de root, mas $HOME
ainda está apontando para o usuário normal.
Se esta é a primeira vez que você está executando o Vim, pode acontecer que o arquivo ~/.viminfo
seja criado dentro do seu diretório de usuários normal, mas com permissões de root.
SE ESTE É SEU PRÓPRIO COMPUTADOR ... não vejo razão para você não usar o 'sudo vim', além do caso de borda que Denilson observou - que ele pode criar o seu ~ / .viminfo de propriedade do root.
Se não - se um administrador de sistemas estiver restringindo o que você pode e não pode fazer - por "man sudo": "na maioria dos sistemas é possível evitar escudos do shell com a funcionalidade noexec do sudo. Veja o manual do sudoers (5) para detalhes. "
Portanto, neste caso, se o seu sysadmin está preocupado com o potencial de você executar subshells como root a partir do vim, eles podem usar o recurso noexec. Mas ... voltando ao caso inicial - se este é o SEU computador, acho que você está muito seguro em executar 'sudo vim'.
Uma referência à resposta de balpha sobre grupos: