Você já tentou usar su - foo
?
Atualizar com base nos comentários:
O -
vazio informa su
para fazer um login completo. Isso significa (da página man),
The environment is discarded except for HOME, SHELL, PATH, TERM, and USER. HOME and SHELL are modified as above. USER is set to the target login. PATH is set to ''/bin:/usr/bin''. TERM is imported from your current environment. The invoked shell is the target login's, and su will change directory to the target login's home directory.
Portanto, se você precisar de outras variáveis de ambiente, como DISPLAY
para abrir programas que usam o servidor de janelas, você deve omitir o -
vazio.