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.