Um usuário do irc no #Vim pediu que eu não usasse 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. Portanto, não usar o sudo se torna um problema. Obviamente, eu poderia fazer alterações em locais diferentes, como / tmp /, e copiar diretórios para / var / www. No entanto, sinto uma maneira mais fácil.
- Se você não "sudo Vim", por quê?
- Se sim à 1ª pergunta, como contornar os problemas para não usar o sudo?
Consulte: /programming/1005/getting-root-permissions-on-a-file-inside-of-vi :
fonte
O vim permite que os usuários executem comandos arbitrários do shell; portanto, muitos administradores de sistema não permitem que o vim seja usado com o sudo.
O rvim está incluído no vim. É um vim restrito, que não permite comandos de shell. (Ou permita que você suspenda o vim, pelos mesmos motivos.)
Se você precisa ir a esses extremos por conta própria é discutível.
fonte
sudo vim
em seguida, entrar:!bash
e você tem um shell como root - exatamente por isso quervim
existesudo bash
ousudo su -
certo?vi
lançamentosvim
, mas como raizvi
lançamentosvi
. No Ubuntuvim
é usado em ambos os casos esudo vi
também lançamentosvim
...Ao editar arquivos de configuração em todo o sistema, tudo fica bem - 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 de servidor da web, você pode querer pensar em alterar algumas propriedades / grupos / permissões --- mas se e como depende em grande parte de sua configuração específica (usuário único / multiusuário, servidor da web real / apenas host local, dinâmico / estático, etc.)fonte
Uma pergunta como essa me faz bater na minha testa. Estou do outro lado da segurança ", a segurança não deve interferir na experiência do usuário, a menos que seja esperado ou exigido para impedir que uma pessoa comum pratique atividades maliciosas".
Prevenir o uso do vim pelo sudo é apenas um band-aid. Como afirmado anteriormente, alguém pode simplesmente usar:
Ou
Ou
Ou
ect
Se você está realmente preocupado com alguém fazendo algo malicioso na caixa, não dê a eles privilégios de sudo (ou senha de root obviamente). Não existe um marcador para impedir 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 malicioso.
Alguém mencionou mudar de 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 irá ajudá-lo. Você pode se adicionar ao grupo em que o servidor da web executa, no entanto, se o grupo não tiver acesso de gravação aos arquivos, será necessário executar chmod -R g + w * (ou arquivos individuais do chmod) que podem não estar disponíveis. o que você quer e pode ser um aborrecimento se você precisar chmod todos os arquivos.
Algumas pessoas até sugeriram o uso do rvim. Certamente, pode-se adicionar uma linha no / etc / sudoers para permitir apenas a certos usuários o sudo rvim, no entanto, seria lógico 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 em que o servidor da Web está sendo executado, portanto, não há problemas de permissão de arquivo e você ainda pode ter um controle granular sobre quem edita quais arquivos.
Meus dois centavos de qualquer maneira.
fonte
A execução
sudo vim
não altera o$HOME
diretório, portanto 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ê executa o Vim, pode ser que o
~/.viminfo
arquivo seja criado dentro do diretório normal do usuário, mas com permissões de root.fonte
sudo vim -c '!echo $HOME' -c q
, minha pasta pessoal é exibida, mas no meu servidor, ela é exibida/root
. Talvez eu tenha que dar uma olhada no porquê disso, pode ser porque um OS X enquanto o Gentoo do outro, ou algo relacionado à/etc/sudoers
configuração..viminfo
era root apenas.SE ESTE É O 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 pode criar o seu ~ / .viminfo de propriedade do root.
Caso contrário - se um administrador de sistemas estiver restringindo o que você pode ou não fazer - por "man sudo": "na maioria dos sistemas, é possível evitar fugas de shell com a funcionalidade noexec do sudo. Consulte o manual do sudoers (5) para obter detalhes. "
Portanto, neste caso, se o seu administrador de sistemas estiver preocupado com o potencial de você executar subshells como root no vim, eles poderão usar o recurso noexec. Mas ... voltando ao caso inicial - se este é o seu computador, acho que você é bastante seguro executando o 'sudo vim'.
fonte
Uma referência à resposta de balpha sobre grupos:
Como: Linux Adicionar Usuário ao Grupo
fonte