$PATH
é avaliado pelo seu shell, portanto, sua verificação não funciona conforme o esperado.
/etc/sudoers
está configurado para substituir seu PATH
por um padrão.
sudo
não carrega um ambiente de shell de login antes de executar o comando, portanto, o padrão PATH
de /etc/sudoers
é usado. su -
abre um shell de login, que envolve o carregamento de /etc/profile
. Veja man bash
, seção INVOCATION .
Basta remover o PATH
reset em /etc/sudoers
. É provável que uma regra seja chamada secure_path
.
CentOS
No CentOS, você pode adicionar PATH
à seção Defaults env_keep
:
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
_XKB_CHARSET XAUTHORITY PATH"