Você precisa colocar os comandos que deseja executar por "usuário" em um script e, em seguida, executar o script usando sudo , que deve ser usado em vez de su .
Por exemplo:
myFunction() {
user="$1"
tmpfile=$(mktemp)
echo "date" >> $tmpfile
# ... put other stuff in tmpfile
sudo -u $user $tmpfile
rm $tmpfile
}