Isso é realmente dependente da configuração . Há uma opção env_reset
em sudoers
que, combinada com env_check
e env_delete
, controla se é necessário substituir, estender ou passar por algumas ou todas as variáveis de ambiente, incluindo PATH
.
O comportamento padrão é ter env_reset
ativado e redefinir PATH
. O valor PATH
está definido para poder ser controlado com a opção secure_path
e, caso contrário, é determinado pela configuração do usuário.
Você pode desabilitar env_reset
ou adicionar PATH
a env_keep
para alterar esse comportamento, mas observe que pode não ter o efeito desejado em geral - geralmente há diretórios ( sbin
) em PATH
da raiz que não estão no seu usuário. Você pode ativar setenv
para permitir a substituição do ambiente para uma única execução de sudo
usando a opção -E
para sudo
.
Tudo isso pode ser alterado na configuração padrão da sua distribuição. Execute sudo visudo
para ver o que está no seu arquivo sudoers
.
Existem abordagens alternativas. Uma delas é usar a configuração de variável de ambiente incorporada de sudo
ou env
:
sudo PATH="$PATH" command ...
sudo env PATH="$PATH" command ...
executará apenas este comando com o PATH
do seu usuário atual. Você pode definir outras variáveis também da mesma maneira, o que geralmente é útil. Um ou outro desses pode não ser permitido pela sua configuração.