Se env_reset
estiver habilitado (o que é, por padrão), sudo
limpará o ambiente e, em particular, fornecerá seu próprio PATH
(consulte secure_path
in /etc/sudoers
). Se env_reset
estiver desabilitado, env_check
e env_delete
ainda serão aplicados, e PATH
provavelmente será desabilitado. Você pode ver isso em ação, comparando a saída de
echo $PATH
e
sudo printenv PATH
Se você tiver um PATH
personalizado, não será exibido na saída de sudo printenv
.
O truque env
funciona em torno da limpeza do ambiente:
sudo env "PATH=$PATH" command
solicita que sudo
execute env "PATH=$PATH" command
, com $PATH
expandido pelo seu shell para conter seu% atualPATH
; env
, executando como root e, em seguida, armazena o valor fornecido de PATH
em seu ambiente e executa command
com esse ambiente.
Portanto, PATH
não é especial, exceto no contexto de sudo
, dependendo de sua configuração. Qualquer variável pode ser "especial" da mesma maneira, configurando sudo
apropriadamente, e PATH
pode ser "não-específico" também. Veja o sudo
e sudoers
manpages para detalhes.