Quando você sudo
obtém um pré-configurado $PATH
, que é (supostamente) algo parecido com o caminho padrão do usuário root . Seu programa não está nessa lista de diretórios identificados por $PATH
.
Veja por exemplo
O sudo tenta ser seguro ao executar comandos externos.
Existem duas maneiras distintas de lidar com variáveis de ambiente. Por padrão, a
opção env_reset
sudoers está ativada. Este comando faz com que sejam executados com um ambiente mínimo que contém TERM
,
PATH
, HOME
, SHELL
, LOGNAME
, USER
e USERNAME
, além de variáveis do processo de chamada permitida pelos env_check
e env_keep
sudoers opções. Existe efetivamente uma lista de permissões para variáveis de ambiente.
Se você não pode configurar sudo
para preservar o seu $PATH
, a solução alternativa usual é especificar o nome do caminho completo do programa. Isso pode não funcionar bem com scripts que chamam outros executáveis no diretório (não acessado).
cd
. Usando odzdo cd
retorno "comando não encontrado". Claro que mais tarde percebeu quecd
ing em um diretório que não tenho permissões, não vai ajudar muito, então eu nem precisa de um shell de root ou necessidade dedzdo ls
,dzdo mv
, etc. o conteúdo de fora que dir.