A razão pela qual bashrc ou arquivos de configuração similares não são originados, é que o sudo não executa um shell. Ele realmente bifurca o processo e faz algumas outras coisas - portanto, não está necessariamente relacionado a um shell. Se você quiser ler isso com mais detalhes, procure por Process model em man sudo .
Posso pensar em duas opções sensatas que estão disponíveis para você:
- Você pode dizer ao sudo para usar um shell de login
- Você pode executar o bash usando o sudo e dizer ao bash para ser um shell de login
Os dois conseguem a mesma coisa de uma maneira um pouco diferente.
Opção 1:
sudo --user=baam -i echo '$PATH' dirá ao sudo para iniciar o shell padrão de baam e executar echo $PATH . Observe as aspas em torno de $PATH no comando original, caso contrário, ele será expandido antes que o bash o veja.
Opção 2: sudo --user=baam bash -c -l 'echo $PATH' usará o sudo para executar o bash. O -l sinalizador diz ao bash para agir como um shell de login, então ele irá fornecer .profile . Esta é a melhor solução na minha opinião, porque você também pode especificar outro shell que suporte o -l flag, como zsh , então você é mais flexível no geral.