Use sudo -E
para preservar seu ambiente:
$ export FOO=1
$ sudo -E env | grep FOO
FOO=1
Isso preservará $HOME
e quaisquer outras variáveis de ambiente que você tivesse, então os mesmos arquivos de configuração que você iniciou serão acessados pelos programas que estão rodando como root.
Você pode atualizar sudoers
para desativar a configuração env_reset
, que limpa todo o ambiente variáveis e geralmente é ativado por padrão. Você pode ter que habilitar a capacidade de usar sudo -E
em tudo lá também. Existem algumas outras configurações de sudoers
que podem ser relevantes: env_keep
, que permite especificar variáveis específicas para manter por padrão, e env_remove
, que declara que as variáveis devem ser excluídas sempre. Você pode usar sudo sudo -V
para ver quais variáveis são / não são preservadas.
Uma alternativa, se você não pode modificar sudoers
, é fornecer seu ambiente explicitamente:
sudo env HOME=$HOME command here
Você pode criar um alias de shell para fazer isso automaticamente para não precisar digitá-lo.
Observe que fazer isso (de qualquer forma) pode ter efeitos colaterais potencialmente indesejados: se o programa que você executa tenta criar arquivos em seu diretório inicial, por exemplo, esses arquivos serão criados como root e seu usuário comum não será capaz de escrever para eles.
Para o caso específico de vim
, você também pode colocar seu .vimrc
como o /etc/vimrc
em todo o sistema se você for o único usuário desse sistema.