Suas variáveis de ambiente serão diferentes para as duas instâncias.
o sudo estará redefinindo algumas de suas variáveis de ambiente - leia a man page do sudo e veja a opção -E
, bem como a seção sobre o arquivo de configuração do sudoers.
Além disso, o uso de su
e não su -
para obter raiz significa que você não possui um ambiente raiz verdadeiro ao executar o arquivo diretamente.
Em resumo, você tem uma incompatibilidade de ambiente entre as duas situações, fazendo um trabalho quando o outro não funciona.