AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1090632
Accepted
H2ONaCl
H2ONaCl
Asked: 2018-11-07 15:21:38 +0800 CST2018-11-07 15:21:38 +0800 CST 2018-11-07 15:21:38 +0800 CST

O Vim é seguro para usar em combinação com o sudo?

  • 772

Não é aconselhável usar sudocom um aplicativo gráfico geditcomo o descrito neste link . Conseqüentemente, eu tendia a usar vimcom sudo.

Recentemente, notei que o meu ~/.viminfoera 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?

vim sudo
  • 6 6 respostas
  • 5347 Views

6 respostas

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2018-11-07T16:04:44+08:002018-11-07T16:04:44+08:00

    Sim, é seguro.

    O problema sudo gedité que os aplicativos da GUI usam certos arquivos, como ~/.cache/dconf, e depois de elevados, geditesse 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ário recently-used.xbeltambé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 :

    Na primeira vez que você usa o vim, o arquivo ~/.viminfoé criado e, se você usar sudo vimo vim pela primeira vez depois de instalá-lo em um sistema novo, as permissões ~/.viminfoterão o proprietário definido como root em vez do usuário padrão.

    Embora o autor aponte que isso pode levar a problemas, não há nada complexo - apenas chowno arquivo de volta para você.

    Veja também:

    • Que coisas ruins específicas acontecem quando o gedit é usado com sudo?
    • 23
  2. GKFX
    2018-11-08T02:44:16+08:002018-11-08T02:44:16+08:00

    Também é possível usar sudoeditpara 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 :

    1. Cópias temporárias são feitas dos arquivos a serem editados com o proprietário definido para o usuário chamador.

    2. O editor especificado pela política é executado para editar os arquivos temporários. A política sudoers usa as variáveis ​​de ambiente SUDO_EDITOR, VISUALe (nessa ordem). EDITORSe nenhum de SUDO_EDITOR, VISUALou EDITORestiver definido, o primeiro programa listado na sudoers(5)opção do editor será usado.

    3. Se tiverem sido modificados, os arquivos temporários são copiados de volta para seu local original e as versões temporárias são removidas.

    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 .

    • 15
  3. WinEunuuchs2Unix
    2018-11-07T16:46:21+08:002018-11-07T16:46:21+08:00

    O link é muito antigo (2013). Ele recomenda o uso de gksudoou gksupara aplicativos gráficos, mas ambos estão se tornando obsoletos. Mais tarde, a resposta aceita também sugere sudo -H.

    O consenso geral na comunidade Ask Ubuntu recentemente é usar:

    sudo -H gedit /path/to/filename
    

    O único problema que permanece é que sudonã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?

    • 2
  4. jeremysprofile
    2018-11-08T12:14:34+08:002018-11-08T12:14:34+08:00

    Sim, é seguro de usar sudo vim. Os problemas que encontro são

    • Ter que sair do arquivo e reabri- sudo vimlo para poder editá-lo.

    • Tendo a raiz vimrccomo padrão, não minhas coisas úteis personalizadas.

    Aqui está uma função que você pode colocar no seu bashrcpara permitir que o vim sudo automaticamente se você não puder editar o arquivo normalmente.

    vim() {
        #only good for auto-sudo. delete if no sudo privileges.
        #If you're not just opening a single file, let's not use this.
        if [[ "$#" -ne 1 ]]; then
            command vim "$@"
        #cases: if we can write to the file, or the file doesn't exist and we can make new files in that directory
        elif [[ -w "$1" || ( -w $(dirname "$1") && ! -f "$1" ) ]]; then
            # \vim or 'vim' only escape aliases, not functions
            command vim "$1"
        else
            sudo env HOME="$HOME" vim -u $HOME/.vimrc "$1"
        fi
    }
    
    • 2
  5. The Letter M
    2018-11-07T15:54:46+08:002018-11-07T15:54:46+08:00

    É 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.

    • 1
  6. JoL
    2018-11-08T09:00:11+08:002018-11-08T09:00:11+08:00

    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.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve