Proteções
sudo tem proteções incorporadas que você está percebendo quando executa vários desses comandos. Essas proteções estão fazendo várias coisas, como impor um $PATH seguro.
Do arquivo /etc/sudoers :
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Isso é o que está sendo exibido quando você executa seus comandos sudo -c .... . Você pode desativar esse comportamento com a opção -E para sudo .
NOTA: Para algumas configurações, a opção -E não funcionará. Para "remediar", você pode usar sudo env "PATH=$PATH" bash . Isso também levará seu atual $PATH para o seu ambiente sudo .
interativo vs. login
Quando você executou este comando:
$ sudo bash
Você executou um shell bash interativo versus um login bash shell. Isso tem a ver com como bash origina seus arquivos de configuração.
-
interativo, também conhecido como
bashoubash -i, fontes$HOME/.bashrc -
login, também conhecido como
bash -l, fontes$HOME/.bash_profile
Então, por que o -E não funciona?
A resposta de TylerRick a essa pergunta SO (sudo muda PATH - por quê?) abrange muitas das razões pelas quais . O principal é que ele é tipicamente codificado quando sudo é compilado, como é o caso do Ubuntu, resultando nesses switches como inúteis. Houve longos problemas em aberto no Launchpad em relação a eles e eles nunca foram corrigidos, deixando-nos com a percepção de que a Canonical acha melhor deixar esse comportamento como padrão.