Eu tentei o seu comando e parece-me que ele está funcionando apenas para encontrar.
sudo -i -u user1 sh -c 'source ~/.bashrc && printenv > /tmp/user.env'
Eu usei o comando origem em vez de .
Com ~/.bashrc
contendo:
[ws] root ~ >cat /home/user1/.bashrc
# .bashrc
...
export TESTENV="test"
...
execute seu comando e exiba o conteúdo de /tmp/user.env
:
[ws] root ~ >sudo -i -u user1 sh -c 'source ~/.bashrc && printenv > /tmp/user.env'
[ws] root ~ >cat /tmp/user.env
...
SHELL=/bin/bash
USER=user1
SUDO_COMMAND=/bin/bash -c sh -c source\ ~/.bashrc\ &&\ printenv\ >\
...
TESTENV=test
...
[ws] root ~ >