Você pode passar variáveis de ambiente para o ambiente sudo na linha de comando:
sudo env HOME=$HOME PATH=$PATH <command>
Como as substituições de variáveis acontecem primeiro, as versões atuais das variáveis são substituídas na linha de comando e, em seguida, executadas com o comando env
no novo ambiente e, em seguida, <command>
é executado.
No entanto, isso não corresponde à sua segunda crítica para combinar caminhos, mas você pode incluir isso em um script e passar exatamente o caminho desejado para o ambiente sudo
. Caminhos de nível de sistema não mudam muito, especialmente dada a sua abordagem de deixar o máximo de baunilha possível. Então, no seu script, você poderia configurar uma nova variável de caminho e depois ir para o sudo:
#!/bin/bash
PATH2=$PATH:/usr/sbin:/sbin
sudo env PATH=$PATH2 HOME=$HOME $@
Chame isso de 'mysudo', talvez, e você pode até aliasar sudo
to mysudo
no seu perfil bash para que sua memória muscular para digitar sudo
ainda funcione.