Ao executar sudo
, muitos sistemas são configurados para limpar o ambiente de todos os valores não permitidos e para redefinir a variável PATH para um valor higienizado.
Você encontrará o primeiro como Defaults env_reset
e vários Defaults env_keep += "SOME_VARIABLE_NAME"
em /etc/sudoers
. O último "seguro" PATH
override é especificado como Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
- exclua esta linha para remover esse comportamento quando sudo
ing.
Como a variável de ambiente é manipulada é impressa quando você executa sudo -V
as root
.
Se você não quiser se livrar desses padrões, poderá sempre especificar programas usando o caminho completo ( sudo /usr/local/bin/vim
).
Como alternativa, você pode permitir que sua conta seja SETENV
no arquivo sudoers
, por exemplo:
%wheel ALL=(ALL) SETENV: ALL
Isso permite que você substitua padrões de ambiente como este: sudo PATH=$PATH which vim
, pois a variável é interpretada pelo seu shell antes que o comando seja executado, resultando em um PATH
herdado (que provavelmente não incluirá /sbin
etc. ).