Se você usar o parâmetro -m com su , ele passará seu ambiente atual para o comando ou shell que está sendo executado. Em particular, a variável $HOME será configurada para seu valor no shell de chamada e não determinada pelo usuário invocado.
Portanto, se você estiver logado como root , $HOME será /root e permanecerá assim ao executar script.sh sob su -m . A menos que haja outras partes do ambiente que você deseja preservar, você pode simplesmente omitir o -m da chamada su .